【发布时间】:2014-02-06 14:19:07
【问题描述】:
我试图创建一个基于两个字段的唯一多键索引:
我的文件:
> db.users.find().pretty()
{
"_class" : "bean.User",
"_id" : ObjectId("52f3945e2f9d426e9dcb1ac8"),
"commandes" : [
{
"idCommande" : 1,
"nom" : "toto",
"prenom" : "TATA",
"adresse" : "",
"ville" : "Brest",
"codePostal" : "29200",
"montantTotal" : 0,
"voyagesSouscrits" : [
{
"idVoyage" : "123",
"duree" : 10,
"nbPersonnes" : 0,
"villeDepart" : "Nantes",
"prixVoyage" : 100000
}
]
}
],
"mail" : "toto@toto.fr",
"password" : "1234"
}
我已经确保我的邮件具有唯一索引。 现在我想为每个“idCommande”创建一个唯一的约束,那么就不可能在我的用户的“commandes”中创建一个具有相同“idCommande”的“commande”。
我试过了
db.users.ensureIndex({_id : 1, idCommande : 1 },{unique :true});
还有:
db.users.ensureIndex({_id : 1, idCommande : 1 },{unique :true, multikey : true});
但我仍然可以插入相同的“idCommande”。
我知道 addToSet 存在,但我不想限制我的全局文档
你有什么想法吗?
提前致谢
【问题讨论】:
-
我不明白。
idDocument不是您文档的一部分。 -
抱歉不知道为什么我写了 idDocument .... 它是 "idCommande" ...
标签: spring mongodb indexing mongodb-indexes