在ASCII中获取Node中的MongoDb ObjectId

时间:2015-12-23 21:59:40

标签: node.js mongodb

通过mongo CLI(v3.0.7)查询MongoDb数据库时,将返回文档及其ObjectId,如下所示:

{ "_id" : ObjectId("566ef12723b89d23fa5003fe"),
  "address": "30 Pair Road",
  ...
}

但使用Node MongoDb库(mongodb@2.0.52,mongodb-core@1.2.28)执行类似搜索会返回:

{ _id: { _bsontype: 'ObjectID', id: 'Vnñ\'#¸#úP\u0003þ' },
  address: '30 Pair Road',
  ...
}

我正在试图弄清楚如何将id的{​​{1}}值转换回'Vnñ\'#¸#úP\u0003þ'的24个十六进制字符,以便我可以通过它查询数据库(作为查询)用'vnñ\'#¸#úP\u0003þ'显然不起作用。

后面的调用包括从集合返回的光标上调用"566ef12723b89d23fa5003fe",我猜这部分反序列化了ObjectId实例。

** **编辑

我在接受来自toArray的结果的函数中输入了一个日志语句,其中显示了:

toArray

我看到的乱码来自两个地方。一个在节点调试repl:

{ _id : 566ef12723b89d23fa5003fe,
  address: "30 Pair Road",
  ...
}

然后当我把它串行化时。我现在在_id字段上显式调用> users[0] { _id: { _bsontype: 'ObjectID', id: 'Vnñ\'#¸#úP\u0003þ' ... } > users[0]._id.toString() '567b1a7d818d826f1dab9c6f' > users[0]._id.id.toString() 'Vnñ\'#¸#úP\u0003þ' 并且它的行为正确。

0 个答案:

没有答案