Sebagai contoh, saya mempunyai jadual tag dalam mongo, dan model data adalah seperti berikut
{
name: String,
hot: {
type: Number,
default: 0
},
create_at: {
type: Date,
default: Date.now
}
}
Kini saya mempunyai pelbagai nama teg, seperti ['mongoDB', 'node.js', 'mysql'],
Saya ingin mengemas kini populariti dalam kelompok, dan jika didapati tiada teg sedemikian, masukkannya, laksanakan sesuatu seperti
mongo.tags.update({
name:{
$in:['mongoDB','node.js','mysql']
}
},{
$inc:{
hot:1
}
},{
upsert: true,
multi:true
})
Operasi sedemikian, tetapi sekarang apabila saya melaksanakan arahan ini, data kosong ditambah
Cara saya melaksanakannya sekarang ialah melakukan pertanyaan dahulu, dan mengemas kini yang boleh ditanya, dan memasukkan yang tidak boleh ditanya Operasi, tetapi operasi sedemikian memerlukan melintasi tatasusunan tag beberapa kali dari kod, dan prestasinya tidak baik.
1 Penyata operasi kemas kini anda OK
2. Apa yang anda katakan tentang menambah data kosong adalah kerana tiada dokumen yang memenuhi syarat ditemui, dan upsert telah ditetapkan kepada benar, jadi dokumen yang mengandungi feild hot telah dimasukkan.
Anda juga boleh menyemak status dokumen koleksi anda dan cuba lagi. Tiada masalah ditemui dalam operasi kemas kini anda.
Untuk rujukan.
Suka MongoDB! Selamat mencuba!
Persidangan Kumpulan Pengguna Komuniti Cina MongoDB Beijing 2017 akan datang tidak lama lagi! Imbas kod QR untuk mendaftar!
Sepatutnya boleh menggunakan upsert dalam mongodb
upsert({},{},true) true bermaksud tulis jika tiada, dan kemas kini jika ada
Anda boleh merujuk kepada forum sokongan rasmi:
http:// forum.foxera.com/ mongo...