gpt4 book ai didi

MongoDB:数组元素属性的唯一索引

转载 作者:行者123 更新时间:2023-12-03 16:00:09 24 4
gpt4 key购买 nike

我有一个与此类似的结构:

class Cat {
int id;
List<Kitten> kittens;
}

class Kitten {
int id;
}

我想阻止用户创建一只拥有多于一只具有相同 ID 的小猫的猫。我尝试按如下方式创建索引:

db.Cats.ensureIndex({'id': 1, 'kittens.id': 1}, {unique:true})

但是当我尝试插入格式错误的猫时,Mongo 会接受它。

我错过了什么吗?这还能做到吗?

最佳答案

据我所知,唯一索引仅强制不同文档之间的唯一性,因此这会引发重复键错误:

db.cats.insert( { id: 123, kittens: [ { id: 456 } ] } )
db.cats.insert( { id: 123, kittens: [ { id: 456 } ] } )

但是这是允许的:

db.cats.insert( { id: 123, kittens: [ { id: 456 }, { id: 456 } ] } )

我不确定是否有任何方法可以在 Mongo 级别强制执行您需要的约束,也许您可​​以在插入更新时在应用程序逻辑中检查它?

关于MongoDB:数组元素属性的唯一索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37390459/

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