我有这样的文件:
{
project: 'Book',
author: 'Author',
pages: [{},{},{},{}]
}
例如我想从pages数组中删除第二个元素。我尝试做这样的事情:
db.t.update(_id: "53296f43630a817c1af2a3e8"}, {$pull:{'test.$':1}})
但它对我不起作用。
答案 0 :(得分:1)
你说它的方式,它很难匹配,因为那里什么也没有。但在现实世界中,你可能会尝试这样匹配:
db.t.update(
{ "_id": "53296f43630a817c1af2a3e8" },
{ "$pull": { "pages": { "value": 1 } }
)
假设有一个"值" "子文档中的属性"。
但是,如果你真的确实意味着什么东西无法匹配,那么试试这个:
db.t.update(
{ "_id": "53296f43630a817c1af2a3e8" },
{ "$set": { "pages.1": false } }
);
db.t.update(
{ "_id": "53296f43630a817c1af2a3e8" },
{ "$pull": { "pages": false } }
)
设置您可以匹配的值,然后匹配并将其删除。