c# – 如何在mongodb中选择嵌套文档?

让我们说我有一个嵌套文档与这个结构:
{
"_id": "a125",
"Language": null,
"Name": "Some name",
"Related": [{
"_id": "b125",
"Status": 0,
}, {
"_id": "b126",
"Status": 1,
}]
}
是否可以使用c#驱动程序选择“相关”模型,其中id为b126并同时获取父文档ID(a125)?
我想,结果应该是这样的:
{
"_id": "a125",
"Related": {
"_id": "b126",
"Status": 1,
}
}
解决方法:
您可以在positional $投影运算符中使用点表示法来查找匹配的文档,并且只包含匹配的相关元素.
在shell中:
db.test.findOne({'Related._id': 'b125'}, {'Related.$': 1})
要在C#中执行此操作:
var filter = Builders<BsonDocument>.Filter.Eq("Related._id", "b125");
var projection = Builders<BsonDocument>.Projection.Include("Related.$");
var result = await collection.Find(filter).Project(projection).FirstAsync();