使用从MongoDB JSON对象获取“漂亮”数据

TJ雪

更新
在尝试了Saravana的解决方案后,我仍然收到奇怪的语法错误。经过一个小时的时间后,我不知道为什么...(也为不良的复制粘贴感到抱歉。

db.submissions.aggregate(  
    [  
        {$match: { started: {'$gte': Date('2018-01-02 01:01:01.001'), '$lte': 
Date('2018-01-02 13:15:59.999' )}}}  
        {$project: { _id: 0,   
            data: [   
                {$dateToString: { format: "%Y-%m-%dT%H:%M:%S", date: "$started" } },  
                {$dateToString: { format: "%Y-%m-%dT%H:%M:%S", date: "$finished" } },  
                '$size'  
               ]   
            }  
        }  
    ]  
)  

第4行的语法错误在位置8缺少](但在任何代码之前,这都没有意义)

原始帖子
我对mongo和JS都是陌生的,所以请忍受我的“基本”代码。我正在运行一个query.js,我得到了我想要的数据,我只需要清理它就可以像一个csv或类似的东西...基本上我的查询返回2个日期和一个文件大小。(底部示例)

var cursor=db.submissions.find({started : {'$gte': ISODate('2018-01-02 
01:01:01.001'), '$lte': ISODate('2018-01-02 13:15:59.999' )}},{started : 1, 
finished : 1, "inputs.inputFile.size" : 1})

cursor.forEach(printjson);

这将返回类似...

"_id" : ObjectId("5a4b7fbe77b5260001843b82"),
"started" : ISODate("2018-01-02T12:49:03.745Z"),
"finished" : ISODate("2018-01-02T12:49:05.695Z"),
"size" : 4560

"_id" : ObjectId("5a4b85be2ea4170001707562"),
"started" : ISODate("2018-01-02T13:14:39.851Z"),
"finished" : ISODate("2018-01-02T13:14:44.363Z"),
"size" : 4547

我只希望返回的数据(而不是字段名称)看起来像[2018-01-02T12:49:03.745Z,2018-01-02T12:49:05.695Z,4560],所以我可以创建一个csv。无论如何,我完全不知所措,我们将不胜感激

萨拉瓦那

您可以使用聚合管道来格式化数据

db.col.aggregate(
    [
        {$match : ...}, // your filters
        {$project : { 
            _id :0, 
            data : [ 
                {$dateToString : { date : "$started", format : "%Y-%m-%dT%H:%M:%S" } },
                {$dateToString : { date : "$finished", format : "%Y-%m-%dT%H:%M:%S" } },
                "$size" 
               ] 
            }
        }
    ]
)

结果

{ "data" : [ "2018-01-02T12:49:03", "2018-01-02T12:49:05", 4560 ] }
{ "data" : [ "2018-01-02T13:14:39", "2018-01-02T13:14:44", 4547 ] }

迭代游标以仅获取值

.forEach(function(doc) {print(doc.data)})

结果

2018-01-02T12:49:03,2018-01-02T12:49:05,4560
2018-01-02T13:14:39,2018-01-02T13:14:44,4547

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章