嵌套数组上的MongoDB唯一复合索引

时间:2017-12-25 18:56:42

标签: mongodb

假设我有以下文件:

{
        "_id" : ObjectId("5a4142699f6e958126baa794"),
        "name" : "doc7",
        "nestedObjects" : [
                {
                        "val" : 15
                },
                {
                        "val" : 16
                },
                {
                        "val" : 15
                }
        ]
}

在特定文档中,嵌套对象数组中的“val”值的唯一性,MongoDB shell中的拼写是什么,所以name / val组合应该是唯一的?

到目前为止,我尝试了db.test.docs.ensureIndex({“name”:1,“val”:1},{unique:true}) 和db.test.docs.createIndex({“name”:1,“val”:1},{unique:true})但似乎没有任何效果。当我尝试插入时:

db.test.docs.find().forEach(function(doc){
    db.test.docs.update({_id: doc._id}, {$push:{"nestedObjects": {val: 15}}})}); 

Mongo DB不介意......

0 个答案:

没有答案