node.js - 在嵌套数组mongodb nodejs中查找对象
问题描述
假设我需要在 'shows'(array) 中获取特定文档,该文档位于 Array 'screens' 中的一个对象中,如何在我的 NodeJS 项目中使用 MongoDB Aggregation 获得这个特定的节目?
这是我的剧院收藏。
"_id" : ObjectId("5fdd148e3a850f2980fc79b6"),
"theaterUser" : ObjectId("5fd237ad0279894d60045fd3"),
**>>>>** "screens" : [
{
"ScreenName" : "Ad 1",
"Seats" : " 64",
"_id" : ObjectId("5fdd148e3a850f2980fc79b5"),
**>>>>** "shows" : [
{
"MovieName" : "Guppy", *
"Screen" : "Ad 1", *
"Date" : ISODate("2020-12-12T00:00:00.000+0000"),*
"time" : "13:30", *Get this One
"VIP" : "400", *
"Premium" : "320", *
"Executive" : "170" *
}
]
},
}```
解决方案
您可以使用 elemMatch 进行此查询,也可以使用 mongodb 聚合进行自定义查询 如果是 $elemMatch,您可以尝试以下操作:
screens:{$elemMatch:{shows:$elemMatch:{MovieName:'Guppy'}}}
您可以尝试嵌套数组的“elemMatch”关键字
推荐阅读
- c# - Stackoverflow 异常自动映射器
- python - 把文件变成列表
- python - 无输出 - Jupyter Notebook
- javascript - 当我尝试在我的 NodeJs 应用程序中访问会话数据时,无法读取未定义的属性电子邮件
- spring-boot - 没有从 Spring Boot 应用程序调用多个 RestController
- azure-application-insights - 如何捕获当前时间范围
- ruby-on-rails - ruby (rails) Net::HTTPResponse 未定义的方法关闭了吗?
- unit-testing - Flutter Mockito - 模拟抛出异常
- javascript - Multipass ShaderToy 有自己的输入
- vba - 中望CAD VBA设置线条颜色