MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Come implementare la query $elemMatch annidata MongoDB in C#

Bene, onestamente scrivere query in C# è un po' complicato, ma puoi sempre giocare un brutto scherzo.

var bsonQuery = "{'Details.a':{$elemMatch:{$elemMatch:{DeviceName : /.*Name0.*/}}}}";
var filter = MongoDB.Bson.Serialization.BsonSerializer.Deserialize<BsonDocument>(bsonQuery);

var result = col.FindSync (filter).ToList();

Sto deserializzando una semplice query MongoDB in un BsonDocument che in cambio sto passando a FindAsync come filtro.

Alla fine, avrai il risultato desiderato in risultato variabile.

Nota:presumo che la connessione MongoDB sia stata stabilita e la variabile col contiene riferimenti alla raccolta MongoDB.

EDIT:vedere il seguente link https://groups.google.com/forum/#!topic/mongodb-csharp/0dcoVlbFR2A. Ora è confermato che il driver C# non supporta i filtri senza nome, quindi scrivi sopra la query usando Buidlers<BsonDocument>.Filter al momento non è supportato.

Per farla breve, ti rimane solo una scelta ed è quella di interrogare come ho detto sopra nella mia soluzione.