Mongodb 使用索引防止多字段重复

Mongodb 使用索引防止多字段重复,mongodb,indexing,Mongodb,Indexing,我的文件: { "age":"20", "name":"leandro" } 我需要防止插入新的文件,如果另一个存在相同的年龄和电子邮件。 我可以用索引来做这件事吗?是的,您可以用unique=true创建索引,如下所示。创建索引后,如果尝试插入具有相同年龄和名称的文档,则会出现重复密钥异常 db.myObject.ensureIndex({age:1, name:1}, {unique : true}) 有关详细信息,您可以阅读文档。这会比较每个字段还是两个字段?如果年龄和

我的文件:

{
    "age":"20",
    "name":"leandro"
}
我需要防止插入新的文件,如果另一个存在相同的年龄和电子邮件。
我可以用索引来做这件事吗?

是的,您可以用unique=true创建索引,如下所示。创建索引后,如果尝试插入具有相同年龄和名称的文档,则会出现重复密钥异常

db.myObject.ensureIndex({age:1, name:1}, {unique : true})

有关详细信息,您可以阅读文档。

这会比较每个字段还是两个字段?如果年龄和姓名相同,则会引发异常。否则会插入新文档。谢谢,我会试试。另一个问题:我能用这个索引启用分片吗?好的,你应该有一个以分片键开始的索引。如果您创建一个以shard键开始的索引,我认为它应该可以工作,但我不能100%确定。最好将此作为一个单独的问题提出。