[英]C# mongoDB wont update array in database
我想更新我的mongoDB集合中的數組。 發布新文檔效果很好,但不會更新數組。 我的文檔結構為:
var document = new BsonDocument
{
{ "post_title", model.Title },
{ "post_text", model.Text },
{ "post_author", model.Author },
{ "post_picture", model.Picture },
{ "post_comments", new BsonArray() },
};
我的更新功能是:
[HttpPost]
[Route("api/PostInfo/{Comment}")]
public async Task Post(Comment comment)
{
try {
BsonObjectId oldId = new BsonObjectId(new ObjectId(comment.id.ToString()));
var mongoDbClient = new MongoClient("mongodb://127.0.0.1:27017");
var mongoDbServer = mongoDbClient.GetDatabase("nmbp");
var collection = mongoDbServer.GetCollection<PostInfo>("post");
var filter = Builders<PostInfo>.Filter.Eq(e => e._id, oldId);
var update = Builders<PostInfo>.Update.Push("post_comments", comment.comment);
await collection.FindOneAndUpdateAsync(filter, update);
var test = oldId.GetType();
}
catch
{
}
}
調試時,我可以看到觸發了后控制器,並且注釋值正確,但是當我查看數據庫時,“ post_comments”數組的值為空。 catch塊中沒有引發任何錯誤。 難道我做錯了什么?
看起來問題出在這一行:
var filter = Builders<PostInfo>.Filter.Eq(e => e._id, oldId);
正確的應如下所示:
var filter = Builders<PostInfo>.Filter.Eq("_id", oldId);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.