Upřímně, psaní dotazů v C# je trochu složité, ale vždycky si můžete zahrát.
var bsonQuery = "{'Details.a':{$elemMatch:{$elemMatch:{DeviceName : /.*Name0.*/}}}}";
var filter = MongoDB.Bson.Serialization.BsonSerializer.Deserialize<BsonDocument>(bsonQuery);
var result = col.FindSync (filter).ToList();
Deserializuji prosté dotazy MongoDB do BsonDocument, který na oplátku předávám FindAsync jako filtr.
Nakonec budete mít požadovaný výsledek ve variabilním výsledku.
Poznámka:Předpokládám, že připojení MongoDB bylo navázáno a proměnná
col
obsahuje odkaz na kolekci MongoDB.
EDIT:Viz následující odkaz https://groups.google.com/forum/#!topic/mongodb-csharp/0dcoVlbFR2A. Nyní je potvrzeno, že ovladač C# nepodporuje bezejmenné filtry, takže zápis výše dotazu pomocí Buidlers<BsonDocument>.Filter
momentálně není podporováno.
Stručně řečeno, zbývá vám pouze jedna možnost, a to dotazovat se, jak jsem uvedl výše ve svém řešení.