有个文档,它的一个属性,是一个文档数组,我想往数组里面添加一个文档,如果存在,则不添加,这里的判断是否存在是如何判断的,是所有属性都相同才算?能不能指定一个属性{_id:0,user:[{id:1,name:a}]}比如,上面这条记录,我想往user里面添加数据,如果id为1,则表示已经存在,则不添加,否则就添加到user数组中$addToSet能实现这种需求不谢谢
ringa_lee
Keunikan subdokumen yang anda perlukan tidak boleh dicapai dengan $addToSet. Terdapat dua idea untuk rujukan:
1. Cuba lihat sama ada anda boleh mencipta indeks unik komposit dalam perniagaan
Contohnya: Buat indeks komposit unik pada nama dan user.id teks {_id, nama, nombor, pengguna[{id, nama}]}
2. Kawalan kod
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" }}})
Sebelum mengemas kini, gunakan $ne atau $nin untuk menentukan sama ada user.id wujud dalam id sedia ada Jika ia tidak wujud, anda boleh mengemas kini.
Untuk rujukan.
Sayangi MongoDB! Selamat Berseronok!
Keunikan subdokumen yang anda perlukan tidak boleh dicapai dengan $addToSet. Terdapat dua idea untuk rujukan:
1. Cuba lihat sama ada anda boleh mencipta indeks unik komposit dalam perniagaan
Contohnya: Buat indeks komposit unik pada nama dan user.id teks {_id, nama, nombor, pengguna[{id, nama}]}
2. Kawalan kod
Sebelum mengemas kini, gunakan $ne atau $nin untuk menentukan sama ada user.id wujud dalam id sedia ada Jika ia tidak wujud, anda boleh mengemas kini.
Untuk rujukan.
Sayangi MongoDB! Selamat Berseronok!