如何在mongodb中使用group创建多个字段唯一键

时间:2017-04-05 13:38:49

标签: json mongodb key unique

我想用组制作唯一键我当时正在使用mongodb数据库,我使用json文件插入数据我的json文件数据如下:

{
   'name' : 'abc',
   'mobileno': '2301658146',
   'provider': 'Airtel'
}
{
   'name' : 'abc',
   'mobileno': '2301658146',
   'provider': 'docomo'
}

如果mobileno和provider与现有记录匹配,则覆盖现有记录,否则插入新记录。

1 个答案:

答案 0 :(得分:0)

您可以使用upsert来执行您想要的操作:

db.mobile.update({ '_id':{'mobileno': '2301658146', 'provider': 'Airtel'}}, {'name' : 'abc'}, {upsert:true})
db.mobile.update({ '_id':{'mobileno': '2301658146', 'provider': 'docomo'}}, {'name' : 'abc'}, {upsert:true})

<强>结果

{ "_id" : { "mobileno" : "2301658146", "provider" : "Airtel" }, "name" : "abc" }
{ "_id" : { "mobileno" : "2301658146", "provider" : "docomo" }, "name" : "abc" }

使用相同的_id.mobileno_id.provider再次运行相同的命令将更新现有文档:

db.mobile.update({ '_id':{'mobileno': '2301658146', 'provider': 'Airtel'}}, {'name' : 'xyz'}, {upsert:true})

<强>结果

{ "_id" : { "mobileno" : "2301658146", "provider" : "Airtel" }, "name" : "xyz" }
{ "_id" : { "mobileno" : "2301658146", "provider" : "docomo" }, "name" : "abc" }