【发布时间】:2018-02-12 12:49:43
【问题描述】:
我有一个简单的 NodeJS 应用程序,它运行一个 http 服务器,它从 MongoDB 实例收集数据并将结果显示为 JSON:
db.collection(collectionName).findOne({ '_id': id }, function (err, result) {
if (err) {
reportError(err, res);
return;
} else {
outPut(result, res);
}
});
在输出函数中,我在“结果”变量上调用 JSON.stringify() 并将其写入响应中。 然而,大部分数据都丢失了,并且从某个地方包含了一个空的 $db 对象。这是数据的一个子集:
"Kommun":1292,
"Lansdel":28,
"Delyta":[
{
"$id":"2",
"$db":""
},
{
"$ref":"691"
},
{
"$ref":"247"
}
使用 Studio 3T 查看记录,似乎我期望的所有数据都已保存。
为什么我没有在 JSON 对象中获取所有数据? $db 来自哪里?这是什么?
【问题讨论】:
-
如果你只是
console.log(result)呢? -
返回:Delyta: [ DBRef { _bsontype: 'DBRef', namespace: undefined, oid: '2', db: undefined }, { '$ref': '22' } ],
-
您使用本机驱动程序而不是 Mongoose 的任何特殊原因?
-
好吧,因为我只是保存和加载记录,我认为我不需要更复杂的功能。 Mongoose 会以某种方式解决这个问题吗?
-
保存和加载记录基本上是 Mongo 所做的 :) 是的,Mongoose 使它变得更容易和更严格(使用数据模型)