2017-03-23 19 views
1

我需要映射到一个简化文档集合中的一些文档。 我能得到什么,我需要这个在蒙戈外壳:用mongodb C#驱动程序映射投影结果

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(); 

,但我得到以下错误

命令总失败:$表情不会在$项目的顶级允许

有人kwons这是怎么回事?

回答

2

如果你打电话Project你有你的BSON已经$project, 所以你只是简化projectionDefinition:

var projectionDefinition = new BsonDocument 
     { 
      { "Team", "$TeamId"}, 
      { "Marker", "$Properties.marker.Value" } 
     }; 

我个人的意见:我会避免使用纯BSON,MongoDB的司机给你准备使用你的c#dto类。

+0

谢谢!我复制了一些代码,将我拉向错误的方向。我同意避免纯BBS的建议(这是我通常所做的,但在这种情况下,纯BBS的理由对我来说更为可行) –

相关问题