正直なところ、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
を使用して上記のクエリを記述します。 現時点ではサポートされていません。
簡単に言うと、選択肢は1つだけです。それは、上記のソリューションで説明したようにクエリを実行することです。