如何从 C# 添加到 mongoDB(2.2.1) 数组
How to add to mongoDB(2.2.1) array from C#
我无法理解 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);
但是"FindOneAndUpdateAsync"有错误。难道我做错了什么?如果有任何帮助,我将不胜感激。
我认为您是在尝试添加记录而不是更新记录,因此您应该使用 collection.InsertOneAsync(document)
方法。
请参阅此 link,其中介绍了一个示例。
希望这对您有所帮助..
我认为问题在于您使用的是 BsonDocument
类型的集合,但您的过滤器和更新定义是 PostInfo
.
类型
如果您将集合访问器更改为此,它是否有效?
var collection = mongoDbServer.GetCollection<PostInfo>("post");
否则,我认为您的更新代码是正确的。
我无法理解 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);
但是"FindOneAndUpdateAsync"有错误。难道我做错了什么?如果有任何帮助,我将不胜感激。
我认为您是在尝试添加记录而不是更新记录,因此您应该使用 collection.InsertOneAsync(document)
方法。
请参阅此 link,其中介绍了一个示例。
希望这对您有所帮助..
我认为问题在于您使用的是 BsonDocument
类型的集合,但您的过滤器和更新定义是 PostInfo
.
如果您将集合访问器更改为此,它是否有效?
var collection = mongoDbServer.GetCollection<PostInfo>("post");
否则,我认为您的更新代码是正确的。