2017-03-23 42 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的理由對我來說更爲可行) –

相關問題