Mongoose-在更新中删除数组元素
Mongoose - remove array element in update
我有一个格式为的JSON
{
_id:5522ff94a1863450179abd33,
userName:'bill',
__v:3,
friends:[
{
_id:55156119ec0b97ec217d8197,
firstName:'John',
lastName:'Doe',
username:'johnDoe'
},
{
_id:5515ce05207842d412c07e03,
lastName:'Adam',
firstName:'Foo',
username:'adamFoo'
}
]
}
我想删除整个相应的子数组。例如,我想删除ID为55156119ec0b97ec217d8197
的用户John Doe,因此结果将是:
{
_id:5522ff94a1863450179abd33,
userName:'bill',
__v:3,
friends:[
{
_id:5515ce05207842d412c07e03,
lastName:'Adam',
firstName:'Foo',
username:'adamFoo'
}
]
}
到目前为止,我有这个:
exports.delete = function (req, res) {
var friends = req.friends[0];
friends.update(
{'_id': req.body.friendsId},
{$pull: {'friends.friends': {_id: req.body.friendId}}}, function (err) {
if (err) {
return res.status(400).send({
message: getErrorMessage(err)
});
} else {
res.json(friends);
}
});
};
但如果没有结果,我也不会犯任何错误,它将和以前一样。req.body.friendsId
是主数组的ID,req.body.friendId
是我想要拉取的特定用户的ID。
将更新查询更改为:
exports.delete = function (req, res) {
var friends = req.friends[0]; // assuming the friends object is your mongodb collection
friends.update(
{ '_id': req.body.friendsId },
{ $pull: {'friends': { _id: req.body.friendId } } }, function (err) {
if (err) {
return res.status(400).send({
message: getErrorMessage(err)
});
} else {
res.json(friends);
}
});
};
这将搜索友元数组元素_id
值=req.body.friendsId
的文档,并使用$pull
运算符从该数组中删除特定数组元素。
相关文章:
- Mongoose-在更新中删除数组元素
- 删除仅空格数组元素
- 如何根据数组内容添加/删除数组中的元素
- 删除数组元素并将它们添加回原来的位置
- 删除基于另一个数组的数组元素
- 如果一个键匹配,如何删除数组元素
- 无法使用拼接删除数组中的元素
- 在 jquery 中,如何通过索引[“键”] 或值删除数组元素
- 使用 Lodash 删除数组中的元素
- 按索引删除数组元素
- 删除数组元素并将它们填充在 javascript 中的另一个数组中
- 按索引删除数组元素
- 当子数组具有特定值时删除数组元素
- Redux reducer删除数组元素失败
- 使用javascript删除数组元素
- 在条件下删除数组元素
- 按值删除数组元素的最佳方法
- 删除数组元素时,边栏关闭
- Javascript按值从数组中删除数组元素
- 如何使用特定值删除数组元素