mongodb 查询多级子对象数据?

单条内容存储格式如下,需要查询 testdate 大于2022-03-09的数据行,"3333","4444"为动态字典,其值为数组字典,如何使用 mongodb 查询符合条件的结果。

[
{
    "_id" : 1,
    "subFormData" : {
        "3333" : [
            {
                "testdate" : ISODate("2022-03-09T19:02:00.000+08:00"),
                "_id" : 420899215648989184
            }
        ],
        "4444" : [
            {
                "testdate" : ISODate("2022-02-10T19:02:00.000+08:00"),
                "_id" : 233
            }
        ]
    }
},
{
    "_id" : 2,
    "subFormData" : {
        "3333" : [
            {
                "testdate" : ISODate("2021-03-09T19:02:00.000+08:00"),
                "_id" : 420899215648989184
            }
        ],
        "4444" : [
            {
                "testdate" : ISODate("2021-03-10T19:02:00.000+08:00"),
                "_id" : 233
            }
        ]
    }
}]
阅读 3.1k
1 个回答

暂已解决,语法如下,3333 需要先查出来

db.tablename
.aggregate([
{ "$unwind" : "$subFormData.3333.testdate" }, 
{ "$match" : { "subFormData.3333.testdate" : { "$gte" : ISODate("2022-03-01T16:00:00Z") } } }, 
{ "$project" : { "targetDate" : "$subFormData.3333.testdate" } }])
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题