Когда я вставляю экземпляр следующего класса:
public class C {
public Guid Id;
public int X;
}
В MongoVUE Text View это выглядит так:
/* 0 */
{
"_id": {
"$binary": "q4TTjt8k4UyaJI6FwuZ1EQ==",
"$type": "03"
},
"X": 1
}
Где GUID был представлен как двоичное значение BSON подтипа 3, которое НЕ является ObjectId.
Чтобы вставить GUID в MongoVUE, вам нужно создать двоичное значение BSON подтипа 3. Сложной частью является определение значения Base64 для использования.
Кроме того, существует проблема с хранением UUID в целом в MongoDB. Три драйвера (C #, Java и Python), которые в настоящее время поддерживают UUID, в прошлом использовали разные порядки байтов для двоичного представления UUID, что действительно усложняет жизнь.
В будущих версиях драйверов будет использоваться новый двоичный подтип 4 для идентификаторов UUID, и все они будут стандартизированы в официальном порядке байтов сети UUID (16 байтов сохраняются в том же порядке, в котором они отображаются в строковом представлении UUID) .
Текущая версия драйвера C # (версия 1.1 была только что выпущена) имеет некоторую экспериментальную поддержку для работы с различными представлениями GUID (см. Перечисление GuidRepresentation и где оно используется).