I am trying to remove an item from a collection that is stored in a mongoose document. My document looks like this:
{
"__v": 3,
"_id": "5221040475f174d59a000005",
"items": [
{
"sku": 1321654654613213,
"name": "goldfish",
"quantity": 12,
"_id": "52224ed5bd9d340000000003"
},
{
"sku": 12,
"name": "goldfish",
"quantity": 13,
"_id": "52225dcbf2f1e40000000003"
},
{
"sku": 1299,
"name": "goldfish",
"quantity": 13,
"_id": "522260b6f2f1e40000000004"
}
]
}
I want to remove the goldfish with the sku of 12. I am doing the following:
var inventory = res.locals.content;
inventory.items.remove( {sku: req.params.itemSku}, function (err, item) {
if (err) {
console.log('error occurred', err);
res.send('error');
}
else {
res.send('Item found and deleted');
return;
}
});
when I do this, I get the error "TypeError: Cannot read property 'equals' of undefined". I don't understand why.
To remove an element from a doubly-nested array in MongoDB document, you can use $pull operator. Now field "UserZipCode": "20010" has been removed from a doubly-nested array.
To remove an element, update, and use $pull in MongoDB. The $pull operator removes from an existing array all instances of a value or values that match a specified condition.
In MongoDB, you can use the $unset field update operator to completely remove a field from a document. The $unset operator is designed specifically to delete a field and its value from the document.
Subdocuments now have a remove function. Use as follows from the spec:
var doc = parent.children.id(id).remove();
parent.save(function (err) {
if (err) return handleError(err);
console.log('the sub-doc was removed')
});
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With