可以说我有一个与此结构嵌套的文档:
{
"_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 $
投影运算符一起使用,以找到匹配的文档,并且仅包括匹配的Related
元素。
在 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();