С mongodb и направляющими для идентификатора документов, каков эффективный способ хранения направляющих для быстрого извлечения действительного идентификатора?

Я работаю с версией 2.06 Mongodb и версией (1.5) драйвера C #, поставляемого 10Gen.

Каждая из моих сущностей имеет настройку свойства Id как таковую ...

 [BsonId(IdGenerator = typeof(GuidGenerator))]
 public Guid Id { get; set; }

Поле Id хранится как Binary - 3: UuidLegacy. Из-за того, как он сохраняется, когда я вызываю ToJson () для объекта, он возвращает следующий объект javascript для идентификатора.

_id : Object
 $binary: "some values here"
 $type: "03"

Это очевидно, потому что данные хранятся как Binary = 3: UuidLegacy. Это имеет смысл.

Я хочу использовать настоящий Guid в своем коде Javascript. Насколько эффективно будет MongoDB, если я сделаю так, чтобы свойства Id выглядели следующим образом?

 [BsonId(IdGenerator = typeof(GuidGenerator)),MongoDB.Bson.Serialization.Attributes.BsonRepresentation(BsonType.String)]
public Guid Id { get; set; }

Это заставляет mongodb хранить мой идентификатор в виде строки. Но насколько это эффективно на самом деле? Я предполагаю, что двоичный формат для моего идентификатора лучше, но мне действительно нужен Guid.

Как я могу перейти от Binary - 3: uuidLegacy к Guid, который мне нужен в моем json?

Я думаю, что еще одна мысль была бы, я мог бы просто использовать двоичное значение $, которое отправлено мне? Я использую Id для выполнения поиска и, например, часть моих строк запроса.

Спасибо,

Ответы на вопрос(1)

Ваш ответ на вопрос