mongodb - $addToSet如何指定字段来作为是否存在的检查字段
ringa_lee
ringa_lee 2017-05-02 09:25:30
0
1
900

有个文档,它的一个属性,是一个文档数组,我想往数组里面添加一个文档,如果存在,则不添加,这里的判断是否存在是如何判断的,是所有属性都相同才算?能不能指定一个属性
{_id:0,
user:[{id:1,name:a}]
}
比如,上面这条记录,我想往user里面添加数据,如果id为1,则表示已经存在,则不添加,否则就添加到user数组中
$addToSet能实现这种需求不
谢谢

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