Я запускаю версию 2.06 Mongodb и версию (1.5) драйвера С#, поставляемую 10Gen.
Каждый из моих объектов имеет настройку свойства Id как таковой...
[BsonId(IdGenerator = typeof(GuidGenerator))]
public Guid Id { get; set; }
Поле Id хранится как двоичное - 3: UuidLegacy. Из-за того, как он хранится, когда я вызываю ToJson() в сущности, он возвращает следующий объект javascript для Id.
_id : Object
$binary: "some values here"
$type: "03"
Это, очевидно, потому, что данные хранятся как Binary = 3: UuidLegacy. Это имеет смысл.
Я хочу использовать фактическое руководство в своем JavaScript-коде. Насколько эффективно для MongoDB, если бы мои свойства Id выглядели следующим образом?
[BsonId(IdGenerator = typeof(GuidGenerator)),MongoDB.Bson.Serialization.Attributes.BsonRepresentation(BsonType.String)]
public Guid Id { get; set; }
Это делает mongodb хранить мой идентификатор в виде строки. Но насколько это эффективно? Я предполагаю, что двоичный формат для моего идентификатора лучше, но мне действительно нужен Guid.
Как я могу перейти от Binary - 3: uuidLegacy к руководству, которое мне нужно в моем json?
Думаю, еще одна мысль: я могу просто использовать $двоичное значение, которое отправлено мне? Я использую Id для выполнения поиска и, например, часть строк запроса.
Спасибо,