【问题标题】:Store related keys as OID or strings in MongoDB在 MongoDB 中将相关键存储为 OID 或字符串
【发布时间】:2012-01-21 06:09:53
【问题描述】:

我的 mongodb 设置存储我的数据大部分是非规范化的,我存储的用户数据刚好够我想在帖子中显示。但我仍然总是存储相关用户或相关帖子的 _id 以进行投票。一些 id 来自 ajax 调用(最终存储为字符串),而另一些则直接来自 mongodb 服务器端(存储在它们来自 OID 的数据类型中),因此现在当我保存这些时,我混合了相关的 id作为字符串或 OID。我的问题是我应该将它们全部转换为字符串还是全部转换为 OID?

【问题讨论】:

  • 当你的 _id 来自 ajax 调用时,它们来自哪里?如果它们的格式不正确,它们可能无法转换为 OID。

标签: mongodb


【解决方案1】:

ObjectIds。它们更节省空间,并且 ObjectIds 比较比字符串比较快。您应该始终将传入的字符串转换回 ObjectId(例如 oid = new ObjectId(string))。我真的想不出你想要字符串的例外情况。

【讨论】:

  • 键名,例如?它们只能是字符串。
  • 嗯,很想有一个场景,你有 ObjectIds 并且想要有意地将它们转换为字符串,以便你可以将它们用作字段值,这听起来有点像架构问题。但你是对的,这可能是一个原因。不过那里很漂亮;)
猜你喜欢
  • 2011-12-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-03
  • 2011-06-04
相关资源
最近更新 更多