Angenommen, dies ist, wie meine Daten aussieht:Projizieren nur Teildokumente abgestimmt zusammen mit Originaldokument Felder MongoDB C#
{
"_id" : ObjectId("545dad3562fa028fb48832f0"),
"number" : "123456",
"persons" : [
{
"name" : "A",
"country" : "US"
},
{
"name" : "N",
"country" : "Australia"
},
{
"name" : "Z",
"country" : "US"
}
]
}
{
"_id" : ObjectId("545dad3562fa028fb48832f0"),
"number" : "123457",
"persons" : [
{
"name" : "Q",
"country" : "India"
},
{
"name" : "B",
"country" : "Brazil"
},
{
"name" : "U",
"country" : "UK"
}
]
}
Ich möchte dies in C# zurückzukehren :(Alle Dokumente mit nur Teildokumente, wo Land ist US)
{
"_id" : ObjectId("545dad3562fa028fb48832f0"),
"number" : "123456",
"persons" : [
{
"name" : "A",
"country" : "US"
},
{
"name" : "Z",
"country" : "US"
}
]
}
zur Zeit bin ich in der Lage, die Dokumente zu erhalten, die angepassten Unterlagen enthalten, sondern auch mit den nicht-relevanten Unterlagen. Abfrage, die ich versucht:
filter = Builders<BsonDocument>.Filter.Eq(c => c.number, "123456") & Builders<BsonDocument>.Filter.ElemMatch(c => c.persons, x => x.country == "US");
var result = client.GetDatabase(MyMongoDB).GetCollection<MyCollection>(CollectionName).Find<MyCollection>(filter);
Können Sie MongoDB 3.4 verwenden? –