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

C# 如何从C添加到mongoDB(2.2.1)数组#,c#,arrays,mongodb,mongodb-.net-driver,C#,Arrays,Mongodb,Mongodb .net Driver,我很难理解C#的新mongoDB驱动程序。在数据库中,我有一个带有数组的集合(注释:[])。现在,我想更新(推送)新的评论到数据库,但没有成功。我尝试过各种代码,有些代码已经过时,等等。我尝试使用的最后一个代码是: var collection = mongoDbServer.GetCollection<BsonDocument>("post"); var filter = Builders<PostInfo>.Filter.Eq(e => e._i

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

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);
var-collection=mongoDbServer.GetCollection(“post”);
var filter=Builders.filter.Eq(e=>e.\u id,temp[0]);
var update=Builders.update.Push(e=>e.Comments,temp[1]);
wait collection.FindOneAndUpdateAsync(筛选、更新);

但是“FindOneAndUpdateAsync”中有错误。我做错什么了吗?如果有任何帮助,我将不胜感激。

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

看看这个例子


希望这有帮助

我认为问题在于您使用的是类型为
BsonDocument
的集合,但您的筛选和更新定义的类型为
PostInfo

如果将集合访问器更改为此,它是否有效

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

否则,您的更新代码在我看来是正确的。

FindOneAndUpdateAsync中的错误是什么?无法从用法中推断方法“IMongoCollection.FindOneAndUpdateAsync(FilterDefinition,UpdateDefinition,FindOneAndUpdateOptions,CancellationToken)”的类型参数。尝试显式指定类型参数。