Doc:
{
_id: 5150a1199fac0e6910000002,
name: 'some name,
items: [{
id: 23,
name: 'item name 23'
},{
id: 24,
name: 'item name 24'
}]
}
Gibt es eine Möglichkeit, ein bestimmtes Objekt aus einem Array zu ziehen? IE, wie ziehe ich das gesamte Elementobjekt mit der ID 23 aus dem Elementarray.
Ich habe versucht:
db.mycollection.update({'_id': ObjectId("5150a1199fac0e6910000002")}, {$pull: {id: 23}});
Ich bin mir jedoch ziemlich sicher, dass ich 'pull' nicht richtig verwende. Soweit ich weiß, wird durch Ziehen ein Feld aus einem Array gezogen, aber kein Objekt.
Irgendwelche Ideen, wie man das gesamte Objekt aus dem Array zieht.
Als Bonus versuche ich dies in Mungo / Nodejs zu tun, auch nicht sicher, ob diese Art von Dingen in der Mungo-API enthalten ist, aber ich konnte sie nicht finden.
Antworten:
Versuchen..
db.mycollection.update( {'_id': ObjectId("5150a1199fac0e6910000002")}, { $pull: { "items" : { id: 23 } } }, false, true );
quelle
upsert
undmulti
. Aktuelle Syntax und Dokumentation finden Sie unter folgendem Link: docs.mongodb.com/manual/reference/method/db.collection.updateIch habe ein Dokument wie
Ich muss die Adresse aus dem Adressfeld löschen
Nachdem ich im Internet viel gesucht hatte, fand ich die Lösung
Customer.findOneAndUpdate(query, {$pull: {address: addressId}}, function(err, data){ if(err) { return res.status(500).json({'error' : 'error in deleting address'}); } res.json(data); });
quelle
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 } ] }
quelle
Sie können es auch versuchen:
db.getCollection('docs').update({ },{'$pull':{ 'items':{'id': 3 }}},{multi:true})
quelle
Für einen einzelnen Datensatz im Array:
db.getCollection('documents').update( { }, {'$pull':{ 'items':{'mobile': 1234567890 }}}, {new:true} );
Für mehrere Datensätze mit derselben Handynummer im Array:
db.getCollection('documents').update( { }, {'$pull':{ 'items':{'mobile': 1234567890 }}}, {new:true,multi:true} )
quelle
Verwenden Sie
$pull
diese Option , um die Daten zu entfernenreturn this.mobiledashboardModel .update({"_id": args.dashboardId}, { $pull: {"viewData": { "_id": widgetId}}}) .exec() .then(dashboardDoc => { return { result: dashboardDoc } });
quelle
Kishore Diyyana:
Wenn Sie alle Elemente einschließlich des Schlüssels der Elementattributliste entfernen möchten. Hier ist das Beispiel eines nicht gesetzten mongoDB-Operators:
db.UM_PREAUTH_CASE.update ({'Id': 123}, {$ unset: {dataElements: ""}})
JSON Sieht so aus:
{"Id": 123, "dataElements": [{"createdBy": "Kishore Babu Diyyana", "createdByUserId": 2020}, {"createdBy": "Diyyana Kishore", "createdByUserId": 2021}]}
quelle