gpt4 book ai didi

c# - MongoDB updateOne

转载 作者:太空宇宙 更新时间:2023-11-03 18:22:53 25 4
gpt4 key购买 nike

我正在尝试更新现有的 Mongo 记录,但收到“附加信息:元素名称‘ID’无效’。”错误

我有一个 BsonDocument“文档”,其中包含我从另一个来源检索的数据,如下所示:

{ "ID" : "ABCecdcf9851efbf0ef66953", ListingKey : "234534345345", "Created" : ISODate("2017-08-04T00:31:23.357Z"), "Modified" : ISODate("2017-08-04T00:31:23.358Z"), "Field1" : 1, "Field2" : "0.09", "Field3" : "1.10", "Field4" : "1", "Field5" : "1" }

这是我编写的 C# 代码:

var collection = db.GetCollection<BsonDocument>("MyCollection");                              

//Hard coded for testing
var filter = Builders<BsonDocument>.Filter.Eq("ListingKey", "234534345345");

collection.UpdateOne(filter, document);

这是否与我尝试用于更新的 BsonDocument 相关?我找到了这个文档,这让我认为这就是原因。如果是这样,有没有办法用我提供的格式进行更新?

https://docs.mongodb.com/getting-started/csharp/update/

我有一个工作流程,它会删除文档然后添加一个新文档,但为了效率起见,我需要更新它。理想情况下,它只会更新 BsonDocument 中存在的字段,并保持 Mongo 文档中的现有字段不变。

最佳答案

我的问题是因为我在尝试更新时没有正确的值。我的代码适用于此:

var collection = db.GetCollection<BsonDocument>("MyCollection");                              

//Hard coded for testing
var filter = Builders<BsonDocument>.Filter.Eq("ListingKey", "234534345345");

var update = Builders<BsonDocument>.Update.Set("Created", DateTime.UtcNow);
foreach (BsonElement item in document)
{
update = update.Set(item.Name, item.Value);
}
var result = collection.UpdateOne(filter, update);

我必须将我的字符串转换为更新的 BsonDocument。

关于c# - MongoDB updateOne,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45496613/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com