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? C'EST À DIRE. comment puis-je extraire l'objet item complet avec l'ID 23 du tableau items.
J'ai essayé:
db.mycollection.update({'_id': ObjectId("5150a1199fac0e6910000002")}, {$pull: {id: 23}});
Cependant, je suis à peu près sûr de ne pas utiliser correctement le "pull". D'après ce que je comprends, pull va tirer un champ d'un tableau mais pas d'un objet.
Toutes les idées pour extraire l’objet entier du tableau.
En prime, j'essaie de faire cela en mangouste/nodejs, ainsi je ne suis pas sûr que ce type de chose soit dans l'API de mangouste, mais je ne pouvais pas le trouver.
essayer..
db.mycollection.update(
{'_id': ObjectId("5150a1199fac0e6910000002")},
{ $pull: { "items" : { id: 23 } } },
false,
true
);
J'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);
});
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
}
]
}
Utilisez $pull
pour supprimer les données
return this.mobiledashboardModel
.update({"_id": args.dashboardId}, { $pull: {"viewData": { "_id": widgetId}}})
.exec()
.then(dashboardDoc => {
return {
result: dashboardDoc
}
});
Vous pouvez l'essayer aussi:
db.getCollection('docs').update({ },{'$pull':{ 'items':{'id': 3 }}},{multi:true})