【问题标题】:MongoiDB use a String for _idMongoDB 使用字符串作为 _id
【发布时间】:2017-05-07 16:28:43
【问题描述】:

我想为每个集合使用一个唯一的字符串来标识一个文档。我正在使用 Scala 和 Casbah,但如果需要也可以使用 Java。

我知道我应该使用 Casbah collection.createIndex,但我不懂 scaladocs。

如果我的案例类是:

case class GroupParams (
  _id: String,
  //groupId: String,
  testPeriodStart: DateTime, // ISO8601 date
  variants: Seq[String], //["17","18"]
  testPeriodEnd: Option[DateTime])

我将始终使用 _id 来引用特定文档(不需要_id: ObjectId)。

我不关心排序/排序,因为这些只会作为单独的文档访问,从不浏览。似乎没有理由在默认的_id: ObjectId 上有另一个索引的开销。

如何使用 Casbah 在带有 _id: String 的集合上创建索引?如果我应该创建一个新索引并保留默认值,您能说明如何执行此操作吗?

【问题讨论】:

    标签: java mongodb scala casbah


    【解决方案1】:

    Mongo 自动为所有类型(ObjectId、String 或任何你想要的)的 _id 字段创建索引 - mongo indexes

    【讨论】:

      【解决方案2】:

      Mongo 会自动为您在集合中的索引生成一个_id
      如果您想将String 插入_id,您可以将字符串转换为objectId,如下所示:ObjectId.Parse(myString))

      MongoDB API中查看更多信息

      【讨论】:

        猜你喜欢
        • 2019-03-12
        • 1970-01-01
        • 2022-01-18
        • 1970-01-01
        • 2018-06-25
        • 2016-01-23
        • 2014-10-29
        • 2021-03-18
        相关资源
        最近更新 更多