MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Interroger un sous-champ dans documentdb

Dans le shell Mongo, vous pouvez utiliser le $(projection) opérateur :

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

Le code C# correspondant peut ressembler à ceci :

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

Vous pouvez également utiliser q = Builders<Model>.Filter.Empty si vous souhaitez obtenir tous les documents même s'ils ne contiennent pas deliverynum =``999