使用mongodb C#驱动程序生成地图投影结果
我需要将集合中的一些文档映射到简化文档。 我可以在mongo shell中获得我需要的:使用mongodb C#驱动程序生成地图投影结果,c#,.net,mongodb,mongodb-.net-driver,map-projections,C#,.net,Mongodb,Mongodb .net Driver,Map Projections,我需要将集合中的一些文档映射到简化文档。 我可以在mongo shell中获得我需要的: db.getCollection('items').aggregate([ { "$project": { "Team": "$TeamId", "Marker": "$Properties.marker.Value" }} ]) 我需要使用C#驱动程序(版本2.3.0)获得相同的结果;我试过这个 var aggregation = m_database.GetCollection<
db.getCollection('items').aggregate([
{ "$project": {
"Team": "$TeamId",
"Marker": "$Properties.marker.Value"
}}
])
我需要使用C#驱动程序(版本2.3.0)获得相同的结果;我试过这个
var aggregation = m_database.GetCollection<BsonDocument>("items").Aggregate();
var projectionDefinition = new BsonDocument("$project", new BsonDocument
{
{ "Team", "$TeamId"},
{ "Marker", "$Properties.marker.Value" }
});
var query = aggregation.Project(projectionDefinition);
var result = await query.ToListAsync();
var aggregation=m_database.GetCollection(“items”).Aggregate();
var projectionDefinition=新的BsonDocument($project),新的BsonDocument
{
{“Team”,“$TeamId”},
{“Marker”,“$Properties.Marker.Value”}
});
var query=aggregation.Project(projectionDefinition);
var result=wait query.ToListAsync();
但是我得到了以下错误
命令聚合失败:$project的顶级不允许使用表达式
有人知道发生了什么事吗?如果你打电话给
Project
你的bson中已经有$Project
,
因此,您只需简化ProjectOnDefinition:
var projectionDefinition = new BsonDocument
{
{ "Team", "$TeamId"},
{ "Marker", "$Properties.marker.Value" }
};
我个人的意见是:我会避免使用纯bson,MongoDB驱动程序为您提供了使用c#dto类的可能性。谢谢!我复制了一些将我引向错误方向的代码。我同意关于避免纯bson的建议(这是我通常做的,但在这种情况下,有理由认为纯bson对我更可行)