MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Comment implémenter la requête $elemMatch imbriquée dans MongoDB en C#

Eh bien, honnêtement, écrire des requêtes en C # est un peu délicat, mais vous pouvez toujours jouer un tour.

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

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

Je désérialise une simple requête MongoDB dans un BsonDocument qui, en retour, je passe à FindAsync en tant que filtre.

En fin de compte, vous aurez le résultat souhaité en résultat variable.

Remarque :Je suppose que la connexion MongoDB a été établie et que la variable col contient une référence à la collection MongoDB.

EDIT :Veuillez consulter le lien suivant https://groups.google.com/forum/#!topic/mongodb-csharp/0dcoVlbFR2A. Maintenant, il est confirmé que le pilote C# ne prend pas en charge les filtres sans nom, donc écrire la requête ci-dessus en utilisant Buidlers<BsonDocument>.Filter pour le moment n'est pas pris en charge.

Pour faire court, il ne vous reste qu'un seul choix et c'est d'interroger comme je l'ai mentionné ci-dessus dans ma solution.