mongodb - $pull 没有从嵌套数组结构中提取元素
问题描述
我正在尝试从具有以下结构的对象数组中提取一个元素:
{
"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.*"}}}}}})
从过去的几个小时开始,我就陷入了困境。请告诉我应该如何处理这个..
解决方案
推荐阅读
- c# - SharpDX 2D 的 DirectX 2d WinForm 设置
- javascript - 无法在 ngx Quill 编辑器中设置 ${}
- css - 在 React 中自定义 iframe 上的 CSS 样式
- javascript - 语音识别在 JavaScript 中不起作用
- python - 从 ipynb 隐藏脚本 .html 文件不起作用
- spring-boot - Spring Boot MVC - 如何以编程方式生成实体的 etag 值?
- python - 如何在 Mac 上为 Jupyter Notebook(Anaconda) 创建桌面快捷方式?
- .net - AWS Beanstalk CI/CD .NET 5
- html - 引导工具提示没有隐藏,在第二页
- angular - Trustpilot:window.Trustpilot.loadFromElement 未定义(Safari)