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

Consultando um subcampo no documentdb


No shell do Mongo, você pode usar o $(projection) operador:
db.collection.find({ "doc.deliverynum": "999" }, { "doc.$": 1 })

O código C# correspondente pode ter a seguinte aparência:
var q = Builders<Model>.Filter.ElemMatch(x => x.doc, d => d.deliverynum == "999");
var p = Builders<Model>.Projection.ElemMatch(x => x.doc, d => d.deliverynum == "999");

var data = Col.Find(q).Project(p).ToList();

Você também pode usar q = Builders<Model>.Filter.Empty se você deseja obter todos os documentos, mesmo que não contenham deliverynum =``999