MongoDB: автоматически сгенерированные идентификаторы - это нули

Я использую MongoDB и официальный драйвер C # 0.9

Я просто проверяю, как работает встраивание простых документов.

Есть 2 простых класса:

public class User
{
    public ObjectId _id { get; set; }
    public string Name { get; set; }
    public IEnumerable<Address> Addresses { get;set; }
}

public class Address
{
    public ObjectId _id { get; set; }
    public string Street { get; set; }
    public string House { get; set; }
}

Я создаю нового пользователя:

var user = new User
{
    Name = "Sam",
    Addresses = (new Address[] { new Address { House = "BIGHOUSE", Street = "BIGSTREET" } })
};

collection.Insert(user.ToBsonDocument());

Пользователь успешно сохранен, как и его адрес.

После ввода

db.users.find()

в оболочке MongoDB я получил следующий результат:

{ "_id" : ObjectId("4e572f2a3a6c471d3868b81d"), "Name" : "Sam",  "Addresses" : [
        {
                "_id" : ObjectId("000000000000000000000000"),
                "Street" : "BIGSTREET",
                "House" : "BIGHOUSE"
        }
] }

Почему идентификатор объекта адреса равен 0?

Выполнение запросов с хотя адрес работает:

collection.FindOne(Query.EQ("Addresses.Street", streetName));

Он возвращает пользователя "Sam".

18
задан Alex 4 January 2011 в 13:45
поделиться