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.