mongodb - Bagaimanakah $addToSet menentukan medan sebagai medan semak untuk kewujudan?
ringa_lee
ringa_lee 2017-05-02 09:25:30
0
1
936

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

ringa_lee
ringa_lee

ringa_lee

membalas semua(1)
世界只因有你

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!

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan