Doc:
{
_id: 5150a1199fac0e6910000002,
name: 'some name,
items: [{
id: 23,
name: 'item name 23'
},{
id: 24,
name: 'item name 24'
}]
}
Existe-t-il un moyen d'extraire un objet spécifique d'un tableau? IE comment puis-je extraire l'objet item entier avec l'ID 23 du tableau items.
J'ai essayé:
db.mycollection.update({'_id': ObjectId("5150a1199fac0e6910000002")}, {$pull: {id: 23}});
Cependant, je suis presque sûr que je n'utilise pas correctement «pull». D'après ce que je comprends, pull tirera un champ d'un tableau mais pas d'un objet.
Toutes les idées sur la façon d'extraire l'objet entier du tableau.
En prime, j'essaie de le faire dans mongoose / nodejs, je ne sais pas non plus si ce type de chose est dans l'API mangouste mais je ne l'ai pas trouvé.
Réponses:
essayer..
db.mycollection.update( {'_id': ObjectId("5150a1199fac0e6910000002")}, { $pull: { "items" : { id: 23 } } }, false, true );
la source
upsert
etmulti
. Pour la syntaxe et la documentation actuelles, consultez ce lien: docs.mongodb.com/manual/reference/method/db.collection.updateJ'ai un document comme
Je dois supprimer l'adresse du tableau d'adresses
Après avoir cherché beaucoup sur Internet, j'ai trouvé la solution
Customer.findOneAndUpdate(query, {$pull: {address: addressId}}, function(err, data){ if(err) { return res.status(500).json({'error' : 'error in deleting address'}); } res.json(data); });
la source
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 } ] }
la source
Vous pouvez également l'essayer:
db.getCollection('docs').update({ },{'$pull':{ 'items':{'id': 3 }}},{multi:true})
la source
Pour un seul enregistrement dans le tableau:
db.getCollection('documents').update( { }, {'$pull':{ 'items':{'mobile': 1234567890 }}}, {new:true} );
Pour plusieurs enregistrements avec le même numéro de mobile dans le tableau:
db.getCollection('documents').update( { }, {'$pull':{ 'items':{'mobile': 1234567890 }}}, {new:true,multi:true} )
la source
Utilisez
$pull
pour supprimer les donnéesreturn this.mobiledashboardModel .update({"_id": args.dashboardId}, { $pull: {"viewData": { "_id": widgetId}}}) .exec() .then(dashboardDoc => { return { result: dashboardDoc } });
la source
Kishore Diyyana:
Si vous souhaitez supprimer tous les éléments, y compris la clé de la liste des attributs d'élément. Voici l'exemple de l'opérateur mongoDB unset:
db.UM_PREAUTH_CASE.update ({'Id': 123}, {$ unset: {dataElements: ""}})
JSON ressemble à ceci:
{"Id": 123, "dataElements": [{"createdBy": "Kishore Babu Diyyana", "createdByUserId": 2020}, {"createdBy": "Diyyana Kishore", "createdByUserId": 2021}]}
la source