Rumah > Soal Jawab > teks badan
Terdapat dokumen, dan salah satu atributnya ialah tatasusunan dokumen adakah sama? Bolehkah anda menentukan atribut
{_id:0,
user:[{id:1,name:a}]
}
Contohnya, untuk rekod di atas, saya ingin menambah data ke pengguna , jika id adalah 1, ia bermakna ia sudah wujud, jadi ia tidak akan ditambah, jika tidak, ia akan ditambahkan pada tatasusunan pengguna
$addToSet boleh mencapai keperluan ini
Terima kasih
世界只因有你2017-05-02 09:27:30
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!