【发布时间】:2020-04-01 23:54:50
【问题描述】:
我在 mongo 中有以下文档
{"_id":{"$oid":"5e7b6cb9606503483494c63a"},"ProductId":{"$binary":{"base64":"V9+9bOaj8kyWrPwdAm0rBQ==","subType":"03"}},"ProductName":"TestProduct1","ProductItems":[{"_t":"ProductItem","ProductId":{"$binary":{"base64":"V9+9bOaj8kyWrPwdAm0rBQ==","subType":"03"}},"Code":"TP1A"},
{"_t":"ProductItem","ProductId":{"$binary":{"base64":"V9+9bOaj8kyWrPwdAm0rDE==","subType":"03"}},"Code":"TP1B"}]}
我想要做的是通过 ProductItem.Code 上的查询返回,该查询返回具有单个匹配子项的产品。因此保留了对象结构,但消除了除单个匹配子项之外的所有对象。
我试过了
Product prod = new Product();
IMongoCollection<Product> products = _database.GetCollection<Product>("Products");
var filter = Builders<Product>.Filter.ElemMatch(x=>x.ProductItems, x=>x.Code==code);
prod = products.Find(filter).FirstOrDefault();
return prod;
但这最终只会返回根文档和所有子文档,而不仅仅是根文档和我搜索的单个子文档。
【问题讨论】:
标签: mongodb mongodb-.net-driver