gpt4 book ai didi

javascript - Node.js 与 MongoDB 驱动程序 - 尝试使用键周围的引号获取有效的 JSON 输出

转载 作者:行者123 更新时间:2023-12-02 17:21:22 24 4
gpt4 key购买 nike

我对 Node.js 非常陌生(对于 MongoDB 来说只是稍微不太新) - 我试图弄清楚如何使用 native 驱动程序生成有效的 JSON。下面的代码生成结果,但键没有用引号引起来,因此我的应用程序感到窒息,因为它认为它是无效的 JSON。

var MongoClient = require('mongodb').MongoClient;

MongoClient.connect("mongodb://localhost:27017/test", function(err, db) {
if(err) { return console.dir(err); }

var collection = db.collection('blah');

var query = [
{ $group: {
_id: {
month: { $month: "$time" },
day: { $dayOfMonth: "$time" },
year: { $year: "$time" },
},
rule: { $avg: "$data.rule.avg" }
} },
{ $sort: { "_id.year": 1, "_id.month": 1, "_id.day": 1 } }
];

collection.aggregate(query, function(err, result) {
console.dir(result);
db.close();
});
});

这会产生如下结果:

{ _id: { 
month: 5, day: 16, year: 2014
},
rule: 84
}

问题是键没有用引号括起来。我这样做有什么问题吗?

我尝试过以下各种排列:

console.dir(toJSON(result));
console.dir(printjson(result));

谢谢!

最佳答案

基本上来自 mongodb 驱动程序的结果是一个 JavaScript 对象,而不是 JSON 字符串。当您执行 console.log(result) 时,node.js 将检查该对象,并尝试将其打印为 javascript 对象文字,这不需要在键周围加上引号。

如果您想要对象的 JSON 形式,只需将其序列化即可:

var JSONResult = JSON.stringify(result);
console.log(JSONResult)

关于javascript - Node.js 与 MongoDB 驱动程序 - 尝试使用键周围的引号获取有效的 JSON 输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23918781/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com