MongoiDB использует строку для _id

Я хотел бы использовать уникальную строку для каждой коллекции для идентификации документа. Я использую Scala и Casbah, но при необходимости могу использовать и Java.

Я знаю, что должен использовать Casbah collection.createIndex, но я не понимаю скаладоков.

Если мой класс case:

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

и я всегда буду использовать _id для ссылки на конкретный документ (нет необходимости в _id: ObjectId).

Меня не волнует сортировка/упорядочение, поскольку они будут доступны только как отдельные документы, а не просматриваются. Кажется, нет причин иметь накладные расходы на другой индекс по умолчанию _id: ObjectId.

Как создать индекс коллекции с помощью _id: String с помощью Casbah? Если мне нужно создать новый индекс и оставить значение по умолчанию, можете ли вы показать, как это сделать?


person pferrel    schedule 07.05.2017    source источник


Ответы (2)


Mongo автоматически создает индекс для поля _id для всех типов (ObjectId, String или что угодно) — индексы монго

person Arthur Kushner    schedule 07.05.2017

Mongo автоматически создает _id для вашего индекса в коллекции,
если вы хотите вставить String в _id, вы можете преобразовать строку в objectId следующим образом: ObjectId.Parse(myString))

Подробнее см. в MongoDB API

person Daniel Taub    schedule 07.05.2017