如何从C#添加到mongoDB(2.2.1)数组

时间:2016-01-11 17:22:53

标签: c# arrays mongodb mongodb-.net-driver

我在理解C#的新mongoDB驱动程序时遇到了麻烦。在数据库中,我有数组的集合(comments:[])。现在,我想更新(推送)新注释到数据库,但没有成功。我尝试了各种代码,有些已经过时了。我尝试使用的最后一个是:

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

但是&#34; FindOneAndUpdateAsync&#34;中存在错误。难道我做错了什么?我将不胜感激任何帮助。

2 个答案:

答案 0 :(得分:0)

我认为您正在尝试添加记录而不更新它,因此您应该使用collection.InsertOneAsync(document)方法。

通过示例查看此link

希望这会有所帮助..

答案 1 :(得分:0)

我认为问题在于您使用的是BsonDocument类型的集合,但您的过滤器和更新定义属于PostInfo类型。

如果您将集合访问者更改为此,是否有效?

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

否则,您的更新代码对我来说是正确的。