如何解决构建多个索引,其中之一在 Mongo 中是唯一的
这是对 Building Multiple Indexes at Once 的延续,我目前正在使用以下命令
db.test_collection_data.createIndex({"uId" : 1,"name" : 1},{unique : 1})
db.test_collection_data.createIndex({"uId" : "hashed"})
db.test_collection_data.createIndex({"uId" : 1,"products" : 1})
db.test_collection_data.createIndex({"bId" : 1})
我想了解将其转换为要在服务器上执行的单个命令的正确方法是什么。我失败的尝试如下:
#uniqueness is lost for the first index
db.test_collection_data.createIndexes(
[
{"uId" : 1,"name":1},{"uId" : "hashed"},{"uId" : 1,"products":1},{"bId" : 1}
]
)
#unable to create since products are not really unique
db.test_collection_data.createIndexes(
[
{"uId" : 1,{"bId" : 1}
],{
unique: true
}
)
解决方法
这是对Building Multiple Indexes at Once的延续,
有一个 answer 提供了对 createIndexes 的引用,createIndexes 命令采用 runCommand
的形式:
你可以使用,syntax 和 example,
- 更改您在
Your database name
中的真实数据库名称和test_collection_data
中的集合名称,
db.getSiblingDB("Your database name").runCommand(
{
createIndexes: "test_collection_data",indexes: [
{
key: {
"uId": 1,"name": 1
},unique : true,name: "_uId_name_"
},{
key: {
"uId": "hashed"
},name: "_uId_"
},{
key: {
"uId": 1,"products": 1
},name: "_uId_products_"
},{
key: {
"bId": 1
},name: "_bId_"
}
]
}
)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。