MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Interrogazione di un sottocampo in documentdb

Nella shell Mongo puoi usare $(projection) operatore:

db.collection.find({ "doc.deliverynum": "999" }, { "doc.$": 1 })

Il codice C# corrispondente può essere simile al seguente:

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();

Puoi anche usare q = Builders<Model>.Filter.Empty se vuoi ricevere tutti i documenti anche se non contengono deliverynum =``999