【问题标题】:Saving mongodb Id in any key as string vs saving as ObjectId将任何键中的 mongodb Id 保存为字符串与保存为 ObjectId
【发布时间】:2014-02-14 00:43:16
【问题描述】:

如果我将任何现有的 mongoId 作为字符串保存在任何其他文档键中,我想知道是否有任何性能增益或损失。例如,我有两个集合,我正在保存一个集合文档 ID,即 _id 作为字符串保存到另一个文档键。我不会将它用作参考,但它是用于查看目的,稍后我可以使用它从另一个集合中获取信息。例子 一个文档

         {_id : ObjectId() , Name : "Test"} // This is one document

另一个集合中的第二个文档

        {_id : ObjectId , Detail : { AID : ObjectIdASString } } // ObjectIdAsString is Id from first document

【问题讨论】:

  • 差别不大,但字符串更大,我看不出为什么要将引用的 id 存储为字符串,而是将 id 本身存储为 objectid。为什么不将两者都存储为ObjectId

标签: mongodb


【解决方案1】:

我会将其存储为ObjectIdObjectIds 需要更少的磁盘空间。另外,根据ObjectId 而不是字符串对集合进行排序会更容易、更有效。不过,这并不可怕,您可以分别使用 toString()valueOf() 方法轻松地将 ObjectId 转换为字符串,反之亦然。

【讨论】:

    猜你喜欢
    • 2020-12-03
    • 2021-05-06
    • 2019-03-10
    • 2015-12-13
    • 2019-06-23
    • 1970-01-01
    • 1970-01-01
    • 2021-09-16
    • 1970-01-01
    相关资源
    最近更新 更多