javascript - ObjectID 不存储十六进制值

标签 javascript node.js mongodb sails.js waterline

最初,我的 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/

相关文章:

node.js - NodeJS 管道损坏导致我的 Express api 停止工作

node.js - "Path ' hashed_pa​​ssword ' is required"即使使用虚拟字段时 hash_password 字段已满

javascript - 在我的react-native项目中使用json文件

javascript - 在 Chart.js 中隐藏 x 轴标签但显示工具提示

javascript - 如何将 bootstrap-datetimepicker 设置为今天凌晨 12 点的日期

node.js - 如何更改 Node 应用程序实例中的服务器时间

javascript - 从路由目录中的 js 文件在 Node.js Express 中进行 REST 调用

javascript - 有没有办法使用命令行工具查看网页的 JavaScript 解释源代码?

node.js - Multer:在不同的文件夹中上传不同的文件类型

windows - Mongo shell "this app can' t 在您的电脑上运行,要找到适合您电脑的版本,请与软件发行商联系。”