С 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 для выполнения поиска и, например, часть моих строк запроса.
Спасибо,