Ich MongoDB und offiziellen C# Treiber unter Verwendung von 0,9MongoDB: automatisch generierte IDs sind Nullen
Ich bin nur überprüft, wie einfach Dokumente einbetten funktioniert.
Es gibt zwei einfache Klassen:
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; }
}
ich einen neuen Benutzer:
var user = new User
{
Name = "Sam",
Addresses = (new Address[] { new Address { House = "BIGHOUSE", Street = "BIGSTREET" } })
};
collection.Insert(user.ToBsonDocument());
Der Benutzer erfolgreich gespeichert wird, so dass seine Adresse ist.
Nach
db.users.find()
in MongoDB Shell eingeben, bekam ich folgendes Ergebnis:
{ "_id" : ObjectId("4e572f2a3a6c471d3868b81d"), "Name" : "Sam", "Addresses" : [
{
"_id" : ObjectId("000000000000000000000000"),
"Street" : "BIGSTREET",
"House" : "BIGHOUSE"
}
] }
Warum ist die Adresse Objekt-ID: 0? obwohl
Abfragen mit der Adresse Doing funktioniert:
collection.FindOne(Query.EQ("Addresses.Street", streetName));
Es gibt den Benutzer "Sam".
Ich mache eine Annahme: Wenn Sie eine andere Zeile einfügen, und Sie die neue Zeile abrufen, ist die ID immer noch 000000000000 – cristian
@ Octopus-Paul, ja das ist richtig. – Alex