Dokter:
{
_id: 5150a1199fac0e6910000002,
name: 'some name,
items: [{
id: 23,
name: 'item name 23'
},{
id: 24,
name: 'item name 24'
}]
}
Apakah ada cara untuk menarik objek tertentu dari array? IE bagaimana cara menarik seluruh objek item dengan id 23 dari array items.
Saya telah mencoba:
db.mycollection.update({'_id': ObjectId("5150a1199fac0e6910000002")}, {$pull: {id: 23}});
Namun saya cukup yakin bahwa saya tidak menggunakan 'tarik' dengan benar. Dari apa yang saya pahami, tarik akan menarik bidang dari array tetapi bukan objek.
Ada gagasan tentang cara menarik seluruh objek keluar dari larik.
Sebagai bonus, saya mencoba melakukan ini di luwak / nodejs, juga tidak yakin apakah hal ini ada di API luwak tetapi saya tidak dapat menemukannya.
Jawaban:
mencoba..
db.mycollection.update( {'_id': ObjectId("5150a1199fac0e6910000002")}, { $pull: { "items" : { id: 23 } } }, false, true );
sumber
upsert
danmulti
. Untuk sintaks & dokumentasi saat ini, periksa tautan ini: docs.mongodb.com/manual/reference/method/db.collection.updateSaya memiliki dokumen seperti
Saya harus menghapus alamat dari array alamat
Setelah mencari banyak di internet saya menemukan solusinya
Customer.findOneAndUpdate(query, {$pull: {address: addressId}}, function(err, data){ if(err) { return res.status(500).json({'error' : 'error in deleting address'}); } res.json(data); });
sumber
Anda juga bisa mencobanya:
db.getCollection('docs').update({ },{'$pull':{ 'items':{'id': 3 }}},{multi:true})
sumber
my database:-> { "_id" : ObjectId("5806056dce046557874d3ab18"), "data" : [ { "id" : 1 }, { "id" : 2 }, { "id" : 3 } ] } MY QUERY:-> db.getCollection('play_table').update({},{$pull:{"data":{"id":3}}},{multi:true} OutPut:-> { "_id" : ObjectId("5806056dce046557874d3ab18"), "data" : [ { "id" : 1 }, { "id" : 2 } ] }
sumber
Untuk satu record dalam array:
db.getCollection('documents').update( { }, {'$pull':{ 'items':{'mobile': 1234567890 }}}, {new:true} );
Untuk beberapa catatan dengan nomor ponsel yang sama dalam larik:
db.getCollection('documents').update( { }, {'$pull':{ 'items':{'mobile': 1234567890 }}}, {new:true,multi:true} )
sumber
Gunakan
$pull
untuk menghapus datareturn this.mobiledashboardModel .update({"_id": args.dashboardId}, { $pull: {"viewData": { "_id": widgetId}}}) .exec() .then(dashboardDoc => { return { result: dashboardDoc } });
sumber
Kishore Diyyana:
Jika Anda ingin menghapus semua elemen termasuk kunci dari daftar atribut elemen. Berikut adalah contoh operator mongoDB unset:
db.UM_PREAUTH_CASE.update ({'Id': 123}, {$ unset: {dataElements: ""}})
JSON Terlihat seperti ini:
{"Id": 123, "dataElements": [{"createBy": "Kishore Babu Diyyana", "createByUserId": 2020}, {"createBy": "Diyyana Kishore", "createByUserId": 2021}]}
sumber