MongoDB + C# - driver + query array von Elementen, wobei jedes element des Arrays enthält das sub-Dokument für die Abfrage auf

Ich mit der version 1.5.0.4566 der offizielle MongoDB C# driver. Ich bin mit Mongo version 2.06.

Hier ist, was mein Dokument-Struktur aussieht (entfällt Felder, die nicht notwendig für diese Diskussion):

{ "Parents" : 
   [ 
     {
     "CreatedOn": ISODate("2012-07-28T15:30:06.623Z"),
     "Title": "Simple Title",
     "Children": [   
                  { "StatusId": 1, "Active" : true, SubChild : { "ExpiresOn": ISODate("2012-07-28T15:30:06.623Z")}},
                  { "StatusId": 1, "Active" : true, SubChild : { "ExpiresOn": ISODate("2012-08-28T15:30:06.623Z")}}
                 ]
     },
     {
     "CreatedOn": ISODate("2012-07-28T15:30:06.623Z"),
     "Title": "Another Simple Title",
     "Children": [   
                  { "StatusId": 1, "Active" : true, SubChild : { "ExpiresOn": ISODate("2012-07-28T15:30:06.623Z")}},
                  { "StatusId": 1, "Active" : true, SubChild : { "ExpiresOn": ISODate("2012-08-28T15:30:06.623Z")}}
                 ]
     }
   ]
}

Wenn ich wollte die Abfrage der Kinder, die eine StatusId gleich eins ist, und Aktiv ist wahr, dass ich verwenden können, ElemMatch.

Query.ElemMatch("Children", Query.And(Query.EQ("StatusId", 1),Query.EQ("Active",true)));

Was ich nicht bekommen kann, zu arbeiten, wenn ich brauchen, um die SubChild element in meiner Abfrage.

Query.ElemMatch("Children", Query.And(Query.EQ("StatusId",1), Query.EQ("Active",true),Query.LT("SubChild.ExpiresOn",DateTime.UtcNow)));

Die Abfrage nicht alle Werte, die wenn ich versuche Sie zu zählen die SubChild.ExpiresOn Feld in der Abfrage. Ich habe versucht, verschiedene Möglichkeiten, um diese Abfrage, aber immer null Unterlagen, wenn ich den SubChild.ExpiredOn Feld.

Was bin ich?

Dank,

InformationsquelleAutor RDotLee | 2012-08-19
Schreibe einen Kommentar