首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >蒙古文DeadBeef .toArray()以意外格式返回_id

蒙古文DeadBeef .toArray()以意外格式返回_id
EN

Stack Overflow用户
提问于 2012-01-11 06:08:47
回答 1查看 706关注 0票数 4

我喜欢蒙古无味牛肉,但我被难住了。我想要得到一个简单的.find()的结果,以相同的JSON格式返回,它与Mongo的命令行的输出相匹配:

代码语言:javascript
复制
$ db.mycollection.find();
# outputs..
# { ...some data... , "_id" : ObjectId("4f0b371c0000008b6d000008") }

然而,对于deedbeef,.find()方法不返回结果或提供回调。因此,我一直在使用.toArray();,这在我看来是正确的。

代码语言:javascript
复制
Mongolian = require("mongolian"),
server = new Mongolian,
db = server.db("mydatabase"),
mycollection = db.collection("mycollection"),

mycollection.find().toArray(function(err, data){
   res.write(JSON.stringify(data));
});

// outputs..
// { ...some data... ,  _id: { bytes: <Buffer 4f 0b 61 5a 00 00 00 7e 6e 00 00 06> } }

对_id二进制文件(我假设这就是缓冲区)进行模式化会导致指标@#$!海量数据。从mycollection.find()返回JSON的正确方式是什么?

代码语言:javascript
复制

我已经能够使用以下代码从结果中剥离_id:

代码语言:javascript
复制
 mycollection.find({}, { id:0 }).toArray(function(err, data){
   res.write(JSON.stringify(data));
});

然而,如何将_id从JSON转换为BSON这一更大的问题仍然存在。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-01-11 07:03:24

问题是“data”是一个document对象数组,但并不是所有的数据都具有与JSON兼容的格式。

查看这里: BSON数据类型部分中的https://github.com/marcello3d/node-mongolian

您的文档看起来是一个' ObjectId‘类型,所以您需要在转换为JSON之前删除ObjectId数据,或者您需要将数据转换为有效的格式。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8811235

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档