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.