Json 如何在MongoDB中获取嵌套值?

Json 如何在MongoDB中获取嵌套值?,json,mongodb,Json,Mongodb,我有一个3层嵌套文档,类似这样 { "_id" : ObjectId("5b5acaf0589ff6bfb5dd091f"), "date" : "2018/07/31", "clock" : [ { "time" : "10:12:02", "values" : [ { "name" : "A1003", "value" : "777" }

我有一个3层嵌套文档,类似这样

{
"_id" : ObjectId("5b5acaf0589ff6bfb5dd091f"),
"date" : "2018/07/31",
"clock" : [ 
    {
        "time" : "10:12:02",
        "values" : [ 
            {
                "name" : "A1003",
                "value" : "777"
            }, 
            {
                "name" : "A0001",
                "value" : "888"
            }
        ]
    }, 
    {
        "time" : "13:12:02",
        "values" : [ 
            {
                "name" : "A1003",
                "value" : "111"
            }
        ]
    }
]
}
我可以使用
$gte
$lte
对日期进行排序,如下所示,并获取所有值

getData(name: string[], fromDate: string, toDate: string): Promise<{ message: string }> {
    return this._mongoUtility.testDb
        .then(db => {
            let collection = db.collection('TestDoc');
            let fromOnlyDate = fromDate.split(' ');
            let toOnlyDate = toDate.split(' ');
            return collection.find({
                'date': {
                    $gte: `${fromOnlyDate[0]}`,
                    $lte: `${toOnlyDate[1]}`
                }
            }).toArray();
        })
        .catch(err => {
            return Promise.reject({message: 'Data not found', err: err})
        })
}

您可以使用聚合框架获得simmler结果(无法按值创建属性)

db.getCollection('sss').aggregate([
{$unwind:'$clock'},
{$unwind:'$clock.values'},
{$项目:{
日期:{$concat:[“$date”,”,“$clock.time”]},
值:'$clock.values.value',
名称:'$clock.values.name'
}}

])
很难理解您想要的是什么您可以添加所需的输出吗please@AmitWagner我已经编辑了上面的帖子。
0:{date: "2018/07/31 10:12:02", value-A1003: "777", value-A0001: "888"}
1:{date: "2018/07/31 13:12:02", value-A1003: "111"}