2016-01-11 62 views
0

我有麻煩理解新的mongoDB驅動程序的C#。在數據庫中,我收集數組(評論:[])。現在,我想更新(推送)新的評論到數據庫,但沒有成功。我曾嘗試各種代碼,有些已經過時等最後一個我想用的就是這個:如何添加到mongoDB(2.2.1)數組從C#

var collection = mongoDbServer.GetCollection<BsonDocument>("post"); 
     var filter = Builders<PostInfo>.Filter.Eq(e => e._id, temp[0]); 

     var update = Builders<PostInfo>.Update.Push<string>(e => e.Comments, temp[1]); 
     await collection.FindOneAndUpdateAsync(filter, update); 

但有錯誤「FindOneAndUpdateAsync」。難道我做錯了什麼?我將不勝感激任何幫助。

+0

「FindOneAndUpdateAsync」中的錯誤是什麼? –

+0

無法根據用法推斷方法'IMongoCollection .FindOneAndUpdateAsync (FilterDefinition ,UpdateDefinition ,FindOneAndUpdateOptions ,CancellationToken)'的類型參數。嘗試明確指定類型參數。 –

回答

0

我認爲問題是,你正在使用BsonDocument類型的集合,但你的過濾器,並更新定義PostInfo類型。

如果你改變你的收集器訪問器,它會工作嗎?

var collection = mongoDbServer.GetCollection<PostInfo>("post"); 

否則,您的代碼更新看起來是正確的。

+0

你是我的救星。謝謝你,先生;) –

0

我認爲你正在嘗試添加記錄而不更新它,所以你應該使用collection.InsertOneAsync(document)方法。

看到這個link通過一個例子。

希望這有助於..