84669 人學習
152542 人學習
20005 人學習
5487 人學習
7821 人學習
359900 人學習
3350 人學習
180660 人學習
48569 人學習
18603 人學習
40936 人學習
1549 人學習
1183 人學習
32909 人學習
有個文檔,它的一個屬性,是一個文檔數組,我想往數組裡面添加一個文檔,如果存在,則不添加,這裡的判斷是否存在是如何判斷的,是所有屬性都相同才算?能不能指定一個屬性{_id:0,user:[{id:1,name:a}]}比如,上面這條記錄,我想往user裡面添加數據,如果id為1,則表示已經存在,則不添加,否則就添加到user數組中$addToSet能實現這種需求不謝謝
ringa_lee
你所需要的sub document的唯一性,$addToSet也做不到。有兩個思路供參考:
1、試試業務上能否創建一個複合的唯一索引
例如:在文字{_id, name, number,user[{id,name}]}的name 和 user.id建立唯一的複合索引
2、代碼控制
db.test.update({ "_id" : ObjectId(""), "user.id" : {$ne : value }}, {$push : { user : { id : 1 , name : "a" }}}) db.test.update({ "_id" : ObjectId(""), "user.id" : {$nin : [] }}, {$push : { user : { id : 1 , name : "a" }}})
Update之前使用 $ne 或 $nin 判斷user.id是否存在已經有的id中,不存在才能update。
供參考。
Love MongoDB! Have Fun!
你所需要的sub document的唯一性,$addToSet也做不到。有兩個思路供參考:
1、試試業務上能否創建一個複合的唯一索引
例如:在文字{_id, name, number,user[{id,name}]}的name 和 user.id建立唯一的複合索引
2、代碼控制
Update之前使用 $ne 或 $nin 判斷user.id是否存在已經有的id中,不存在才能update。
供參考。
Love MongoDB! Have Fun!