文档:
{
_id: 5150a1199fac0e6910000002,
name: 'some name',
items: [{
id: 23,
name: 'item name 23'
},{
id: 24,
name: 'item name 24'
}]
}
有没有办法从数组中提取特定对象? IE。如何从 items 数组中提取 id 为 23 的整个 item 对象。
我试过了:
db.mycollection.update({'_id': ObjectId("5150a1199fac0e6910000002")}, {$pull: {id: 23}});
但是我很确定我没有正确使用“拉”。据我了解,pull 将从数组中提取一个字段,而不是从对象中提取一个字段。
关于如何将整个对象拉出数组的任何想法。
作为奖励,我正在尝试在 mongoose/nodejs 中执行此操作,也不确定这种类型的东西是否在 mongoose API 中,但我找不到它。
最佳答案
试试..
db.mycollection.update(
{ '_id': ObjectId("5150a1199fac0e6910000002") },
{ $pull: { items: { id: 23 } } },
false, // Upsert
true, // Multi
);
https://stackoverflow.com/questions/15641492/