2017-04-05 71 views
-1

我要讓那個時候有一羣獨特的鍵我使用的MongoDB數據庫和我插入使用JSON數據文件的json文件中的數據是這樣的:如何進行多場唯一的密鑰與組中的mongodb

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

如果mobileno和provider匹配現有記錄,覆蓋現有記錄,否則插入新記錄。

回答

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" }