我在使用mongodb中的集群唯一密钥时遇到了一些问题。我是整个文档数据库的新手,所以这可能是我以错误的方式处理事情。无论如何,鉴于此文件:
{
"_id": "61d8ef04b0d2caa4f9000000",
"ItemNumber": "242108",
"Image": null,
"ProductInformation": [
{
"Body": "Test",
"Header": "Test",
"Language": {
"Id": 10,
"Culture": "sv-SE",
"Currency": "SEK",
"ISO": "SV"
}
},
{
"Body": "Teste",
"Header": "Foo",
"Language": {
"Id": 11,
"Culture": "no-NB",
"Currency": "NOK",
"ISO": "NO"
}
}
]
}
我希望能够将ProductInformation限制为每个Language.Id只包含一个实例。我一直试图通过以下“设置”来做到这一点:
db.ItemInfo.ensureIndex({"ItemNumber" : 1, "ProductInformation.Language.Id" : 1}, {unique: true})
在我看来,这会在languageId和itemNumber之间创建一个聚类唯一键。但是,我仍然可以使用languageId 10添加任意数量的ProductInformation实例。我是否错误地设置了索引?我应该以另一种方式解决这个问题吗?