sql >> Base de Datos >  >> NoSQL >> MongoDB

Cómo implementar MongoDB anidado $ elemMatch Query en C#

Bueno, sinceramente, escribir consultas en C# es un poco complicado, pero siempre puedes jugar un truco.

var bsonQuery = "{'Details.a':{$elemMatch:{$elemMatch:{DeviceName : /.*Name0.*/}}}}";
var filter = MongoDB.Bson.Serialization.BsonSerializer.Deserialize<BsonDocument>(bsonQuery);

var result = col.FindSync (filter).ToList();

Estoy deserializando consultas simples de MongoDB en un BsonDocument que, a cambio, estoy pasando a FindAsync como filtro.

Al final, obtendrá el resultado deseado en resultado variable.

Nota:asumo que se ha establecido la conexión MongoDB y la variable col contiene una referencia a la colección MongoDB.

EDITAR:consulte el siguiente enlace https://groups.google.com/forum/#!topic/mongodb-csharp/0dcoVlbFR2A. Ahora se ha confirmado que el controlador de C# no admite filtros sin nombre, por lo que debe escribir la consulta anterior utilizando Buidlers<BsonDocument>.Filter en este momento no es compatible.

Para resumir, solo le queda una opción y es consultar como mencioné anteriormente en mi solución.