ObjectID 不存储十六进制值

ObjectID not storing hexadecimal value

最初,我的 Sails/Mongo 将 ObjectID 存储在数据库中,如下所示:

"_id" : ObjectId("557077fb836bdee256004232")

不确定发生了什么变化或发生了什么,但现在新记录存储如下:

"_id" : {
    "_bsontype" : "ObjectID",
    "id" : "UtÓ-Åß\u0010C&5",
    "generationTime" : 1434552692
}

这仅发生在 6 个开发人员环境中的 2 个中。

我检查过的东西:

如果有任何具体的帮助,我非常乐意分享 config/logs。环境:Node 0.12.4,npm v2.11.2,MongoDB shell v3.0.4。我已经调试了代码和所有内容,以至于我相当确定它是我的环境所独有的东西以及它如何与 Mongo/Sails/Waterline/BSON.

交互

我希望这更像是一个 "Hey I've seen this before and this is how I solved it" 问题,而不是一个实际的 code/debugging 问题!谢谢!

回答我自己的问题!

MongoDB 的 brew 安装似乎发生了一些愚蠢的事情。从 http://docs.mongodb.org/manual/tutorial/install-mongodb-on-os-x/ 手动重新安装它,然后恢复我备份的数据库似乎可以解决问题。

我仍然很想从 code/technical 的角度了解为什么我的环境突然决定开始返回 12 字节的 BSON ObjectID 而不是十六进制的 ObjectID...但在那之前希望一个简单的手动重新安装将帮助遇到这个奇怪问题的其他人!