【问题标题】:Drawbacks of using integers as IDs in MongoDB在 MongoDB 中使用整数作为 ID 的缺点
【发布时间】:2015-11-11 16:58:40
【问题描述】:

我在 MongoDB 中为 PHP 应用程序制作了 MySQL 表的“副本”。 我有 id 列,即 PRIMARY KEY。 我应该将它存储在 mongodb 中吗:

['_id' => (string) $id]

['_id' => (int) $id]

['_id' => new \MongoId($id)]

['_id' => new \MongoId, 'id' => $id]

我不打算为 mongodb 使用多台机器,或者仅通过该 ID 进行大量查询。

这里使用字符串、整数或ObjectId有什么区别?

【问题讨论】:

  • 您要指定特定的 id吗?如果没有,MongoDB 会在插入时自动为您生成一个 objectID,您无需指定它。
  • @jpaljasma 无论如何我都会存储该 ID。但我应该将它用作 ObjectId 还是从 mongodb 获取 ObjectId。我应该转换为整数还是字符串,这对性能或索引或我还不知道的 mongodb 有影响吗?
  • 您不能将 MySQL int 列存储为 MongoId,它们在规范中根本不匹配
  • 好的,主要问题。您要插入此集合吗?如果是这样,怎么做?在 MySQl 中,如果预设了 id,那么我认为用它替换 _id 没有问题

标签: php mysql mongodb types uniqueidentifier


【解决方案1】:

以上所有选项都可以。我个人喜欢将 _id 留给 mongodb 来管理,所以我会选择第四个选项。

对于这个集合可能增长到很大的情况,我会例外。在这种情况下,我会选择第二种选择,因为这样会占用最少的空间。

【讨论】:

    猜你喜欢
    • 2011-03-04
    • 1970-01-01
    • 2012-11-19
    • 1970-01-01
    • 1970-01-01
    • 2010-09-29
    • 1970-01-01
    • 2022-01-01
    • 1970-01-01
    相关资源
    最近更新 更多