最初,我的 Sails/Mongo 将 ObjectID 存储在数据库中,如下所示:
"_id" : ObjectId("557077fb836bdee256004232")
不确定发生了什么变化或发生了什么,但现在新记录存储如下:
"_id" : {
"_bsontype" : "ObjectID",
"id" : "UtÓ-Åß\u0010C&5",
"generationTime" : 1434552692
}
这种情况仅发生在 6 个开发者环境中的 2 个中。
我检查过的事情:
- 恢复到上周的稳定提交,清除了node_modules、npm 缓存等。重新安装了,但没有成功。
- 完全重新安装了 Node/npm/MongoDB,以确保我使用的是最新的稳定版本...我的版本都与运行正常的现有开发人员环境相匹配。
如果有任何具体内容可以提供帮助,我将非常乐意分享配置/日志。环境:Node 0.12.4,npm v2.11.2,MongoDB shell v3.0.4。我已经调试了代码和所有内容,以至于我相当确定它是我的环境及其与 Mongo/Sails/Waterline/BSON 交互方式所特有的东西。
我希望这更多的是一个“嘿,我以前见过这个,这就是我解决它的方法”问题,而不是一个实际的代码/调试问题!谢谢!
最佳答案
回答我自己的问题!
MongoDB 的 brew 安装似乎发生了一些愚蠢的事情。从http://docs.mongodb.org/manual/tutorial/install-mongodb-on-os-x/手动重新安装它然后恢复我备份的数据库似乎就成功了。
我仍然很想从代码/技术的 Angular 了解为什么我的环境突然决定开始返回 12 字节 BSON ObjectID 而不是十六进制 ObjectID...但在那之前希望能进行简单的手动重新安装将帮助遇到这个奇怪问题的其他人!
关于javascript - ObjectID 不存储十六进制值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30897147/