c#在MongoDB文档上使用投影
本文关键字:投影 文档 MongoDB | 更新日期: 2023-09-27 18:05:57
我试图仅从已展开的文档中获取几个值。
现在我得到了所有这些,但是我只想要"reviews"中的值
{ "_id" : ObjectId("57ced083857eda00e03b5a5e"), "name" : "Rest2", "reviews" : { "_id" : ObjectId("57ced083857eda00e03b5a60"), "rating" : 4, "date" : ISODate("2016-09-05T22:00:00Z") } }
我当前的聚合函数是这样的:
var coll = Database.GetCollection<Restaurant>("restaurants")
.Aggregate()
.Match(new BsonDocument { { "name", nameRest } })
.Unwind(x => x.reviews);
var result = await coll.ToListAsync();
如何只投射这些值?帮助将非常感激!
根据您的示例,您可以使用如下项目:
var coll = Database.GetCollection<Restaurant>("restaurants")
.Aggregate()
.Match(new BsonDocument { { "name", nameRest } })
.Unwind(x => x.reviews)
.Project(new BsonDocument { {"rating", "$reviews.rating"} })
var result = await coll.ToListAsync();
上面示例的结果将只输出reviews.rating
和_id
字段。更多信息请参见聚合操作符$project。
上面的代码片段是使用MongoDB c# Driver v2.2, MongoDB v3.2和。net v4.5进行测试的