Е, честното писане на заявки в C# е малко сложно, но винаги можете да изиграете номер.
var bsonQuery = "{'Details.a':{$elemMatch:{$elemMatch:{DeviceName : /.*Name0.*/}}}}";
var filter = MongoDB.Bson.Serialization.BsonSerializer.Deserialize<BsonDocument>(bsonQuery);
var result = col.FindSync (filter).ToList();
Десериализирам обикновени заявки на MongoDB в BsonDocument, които в замяна предавам на FindAsync като филтър.
В крайна сметка ще имате желания резултат в променлив резултат.
Забележка:Предполагам, че връзката с MongoDB е установена и променлива
col
съдържа препратка към колекцията MongoDB.
РЕДАКТИРАНЕ:Моля, вижте следната връзка https://groups.google.com/forum/#!topic/mongodb-csharp/0dcoVlbFR2A. Сега е потвърдено, че драйверът на C# не поддържа безименни филтри, така че пишете по-горе заявка с помощта на Buidlers<BsonDocument>.Filter
в момента не се поддържа.
Накратко, остава ви само един избор и това е да направите запитване, както споменах по-горе в моето решение.