代码之家  ›  专栏  ›  技术社区  ›  Johan Rin

在嵌套数组mongodb中查找

  •  0
  • Johan Rin  · 技术社区  · 7 年前

    "serviceInfo" : {
        "title" : "Lorem ipsum",
        "options" : [ 
            {
                "startDate" : ISODate("2018-10-01T00:00:00.000Z"),
                "endDate" : ISODate("2018-10-31T00:00:00.000Z"),
                "availabilities" : [ 
                    {
                        "businessDay" : {
                            "id" : 1,
                            "name" : "Monday"
                        },
                    }
                ]
            }
        ]
    

    现在,我想查询星期一期间所有可用的服务 startDate endDate .

    我尝试了这段代码,但结果是一个空数组,而不是我的文档。

    db.collection('services').find({
      'serviceInfo.options': {
        $elemMatch: {
          'startDate': { $lte: new Date(req.query.date) },
          'endDate': { $gte: new Date(req.query.date) },
          'availabilities': {
            $elemMatch: {
              'businessDay.id': req.query.day
            }
          }
        }
      }
    }).toArray()
    

    我想我的问题是嵌套数组 availabilities 但是我没有找到正确的方法来进行查询。

    1 回复  |  直到 7 年前
        1
  •  0
  •   Johan Rin    7 年前

    我发现了我的问题。

    'businessDay.id' 需要一个Int32,parseInt(req.query.day)就完成了。