我放入集合中的对象的“模式”如下所示:
{
name : "Niranjan", //<--key
children : ["Suraj", "kalidas", "Suraj"]
}
但我想确保孩子们被视为一个集合 - 在上面的示例中,我希望 Mongo 不接受记录,因为“Suraj”在数组中出现了两次。
我尝试在名称和孩子上创建一个唯一索引
db.folks.ensureIndex({name:1,children:1},{unique:true})
然而,它的作用是在任何子名 + 民间名称上建立一个全球唯一的索引。也就是说,如果我没有唯一的名称索引,我将能够执行以下操作:
db.folks.insert({name:'p',children:['c1','c2']})
db.folks.insert({name:'p',children:['c3']})
因为 p+c1、p+c2 和 p+c3 是不同的。如果我尝试插入以下内容:
db.folks.insert({name:'p',children:['c4','c1']})
然后我会得到
E11000 duplicate key error index: test.folks.$name_1_children_1 dup key: { : "p", : "c1" }
有没有办法在插入期间不进行 检查,如 https://stackoverflow.com/questions/9640233/unique-array-values-in-mongoose?