【问题标题】:ObjectID not storing hexadecimal valueObjectID 不存储十六进制值
【发布时间】:2015-06-17 16:21:59
【问题描述】:

最初,我的 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 交互。

我希望这更像是一个“嘿,我以前见过这个,这就是我解决它的方法”的问题,而不是一个实际的代码/调试问题!谢谢!

【问题讨论】:

  • 似乎与这个(未回答的,真的)问题有关:stackoverflow.com/questions/30852106/…
  • @robertklep 感谢链接,绝对是同样的问题。我很难弄清楚如何用词来查找相关问题。

标签: javascript node.js mongodb sails.js waterline


【解决方案1】:

回答我自己的问题!

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-10-07
    • 1970-01-01
    • 1970-01-01
    • 2018-07-26
    • 2012-04-02
    • 2011-10-04
    • 2010-12-15
    • 1970-01-01
    相关资源
    最近更新 更多