Cóż, uczciwe pisanie zapytań w C# jest trochę trudne, ale zawsze możesz spróbować.
var bsonQuery = "{'Details.a':{$elemMatch:{$elemMatch:{DeviceName : /.*Name0.*/}}}}";
var filter = MongoDB.Bson.Serialization.BsonSerializer.Deserialize<BsonDocument>(bsonQuery);
var result = col.FindSync (filter).ToList();
Deserializuję zwykłe zapytania MongoDB do BsonDocument, które w zamian przekazuję do FindAsync jako filtr.
W końcu uzyskasz pożądany wynik w zmiennym wyniku.
Uwaga:Zakładam, że połączenie MongoDB zostało ustanowione i zmienna col
zawiera odniesienie do kolekcji MongoDB.
EDYCJA:Zobacz poniższy link https://groups.google.com/forum/#!topic/mongodb-csharp/0dcoVlbFR2A. Teraz potwierdzono, że sterownik C# nie obsługuje filtrów bez nazwy, więc pisząc powyższe zapytanie przy użyciu Buidlers<BsonDocument>.Filter
w tej chwili nie jest obsługiwany.
Krótko mówiąc, pozostaje tylko jeden wybór i jest to zapytanie, jak wspomniałem powyżej w moim rozwiązaniu.