【发布时间】:2011-10-08 07:13:58
【问题描述】:
我有一个类似这样的结构:
class Cat {
int id;
List<Kitten> kittens;
}
class Kitten {
int id;
}
我想阻止用户创建具有多个具有相同 ID 的小猫的猫。我尝试按如下方式创建索引:
db.Cats.ensureIndex({'id': 1, 'kittens.id': 1}, {unique:true})
但是当我尝试插入格式错误的猫时,Mongo 接受了它。
我错过了什么吗?这甚至可以做到吗?
【问题讨论】:
-
这不是单只猫不接受同一只小猫两次。你不能有 2 只猫和同一只小猫。 kittens.id 在所有猫中必须是唯一的,这就是为什么小猫不能同时拥有妈妈和爸爸的原因。
-
这是荒谬的,即使反过来也是合乎逻辑的。因为
mongodb不是关系型的。我想让unique检查我的嵌入式文档,这将是sql领域中的child表。相反,我可能希望在子记录中我不想要相同的子 ID,但可以跨文档有效。
标签: mongodb