我正在尝试从具有以下结构的对象数组中提取元素:
{
"tasks" : [
{
"maintask" : "Walk",
"subtask" : [
{
"task_name" : "1/2 hour walk",
"photo_urls" : [
{
"photo_url" : "banner1.jpeg",
},
{
"photo_url" : "banner.jpeg",
}
]
}
]
},
]
}
我需要基于photo_url删除对象。我正在执行以下查询,从photo_urls数组中删除一个photo_url对象:
db.booking_checklist.update({},
{$pull: {tasks: {subtask: {photo_urls: {$elemMatch: {photo_url: {$regex: ".*banner1.jpeg.*"}}}}}}})
此查询匹配对象,但不对其进行修改。以下是查询的响应:
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 0 })
我也在尝试另一个查询,但是该查询消失了整个任务对象:
db.booking_checklist.update({},
{$pull: {tasks: {"subtask.photo_urls": {$elemMatch: {photo_url: {$regex: ".*banner1.jpeg.*"}}}}}})
从过去的几个小时开始,我一直陷于困境。请告诉我该如何处理。.