首页 > 解决方案 > 在嵌套数组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"                              * 
                }
            ]
        }, 
     
}```

标签: node.jsmongodb

解决方案


您可以使用 elemMatch 进行此查询,也可以使用 mongodb 聚合进行自定义查询 如果是 $elemMatch,您可以尝试以下操作:

screens:{$elemMatch:{shows:$elemMatch:{MovieName:'Guppy'}}}

您可以尝试嵌套数组的“elemMatch”关键字


推荐阅读