gpt4 book ai didi

MongoDB:嵌入式文档中的唯一键

转载 作者:IT老高 更新时间:2023-10-28 13:06:44 26 4
gpt4 key购买 nike

是否可以为嵌入文档中的键设置唯一键?

我有一个包含以下示例文档的用户集合:

 {
Name: "Bob",
Items: [
{
Name: "Milk"
},
{
Name: "Bread"
}
]
},
{
Name: "Jim"
},

有没有办法在 Items.Name 属性上创建索引?

我在尝试创建索引时遇到以下错误:

> db.Users.ensureIndex({"Items.Name": 1}, {unique:true});
E11000 duplicate key error index: GroceryGuruApp.Users.$Items.Name_1 dup key: {
: null }

有什么建议吗?谢谢!

最佳答案

唯一索引只存在于集合中。要在文档中强制执行唯一性和其他约束,您必须在客户端代码中执行此操作。 (可能 virtual collections 会允许,你可以投票给它。)

在您的情况下,您尝试做的是在任何文档中都不存在的键 Items.Name 上创建索引(它不引用数组中的嵌入文档 Items),因此它是 null 并且违反了整个集合的唯一约束。

关于MongoDB:嵌入式文档中的唯一键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4435637/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com