gpt4 book ai didi

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

转载 作者:IT老高 更新时间:2023-10-28 13:04:15 25 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/6743849/

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