MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Como implementar a consulta $elemMatch aninhada do MongoDB em C #


Bem, honestamente, escrever consultas em C# é um pouco complicado, mas você sempre pode pregar uma peça.
var bsonQuery = "{'Details.a':{$elemMatch:{$elemMatch:{DeviceName : /.*Name0.*/}}}}";
var filter = MongoDB.Bson.Serialization.BsonSerializer.Deserialize<BsonDocument>(bsonQuery);

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

Estou desserializando consultas simples do MongoDB em um BsonDocument que, em troca, estou passando para FindAsync como filtro.

No final, você terá o resultado desejado em resultado variável.

Nota:estou assumindo que a conexão do MongoDB foi estabelecida e a variável col contém referência à coleção do MongoDB.

EDIT:Por favor, veja o seguinte link https://groups.google.com/forum/#!topic/mongodb-csharp/0dcoVlbFR2A. Agora está confirmado que o driver C# não suporta filtros sem nome, portanto, escrever acima da consulta usando Buidlers<BsonDocument>.Filter no momento não é suportado.

Para encurtar a história, você fica com apenas uma opção e é consultar como mencionei acima na minha solução.