gpt4 book ai didi

c# - 如何在 C# 中更新 mongo db 的所有记录

转载 作者:行者123 更新时间:2023-11-30 22:57:53 29 4
gpt4 key购买 nike

我有存储 JSON 的 mongo 数据库集合。一个集合的所有记录中错误地更新了一个元素值。

我将如何更新特定元素?

我的json是这样的

{
status:
{
name:"john",
value: "12345678903333.444"
}
}

这里的value属性值应该是long字段,value会被替换成

{
status:
{
"name":"john",
"value": 1234567890
}
}

应将值修剪为现有值的前 10 个字符。

更新后(来自@mickl 回答), different format - other than numeric

转换为 Int 也有错误! Screen

最佳答案

您可以使用 $substr运算符 $toDouble将字符串转换为数字,然后使用 $out 将聚合结果重定向到同一集合中(基本上会更新它的所有文档),在 Mongo shell 中尝试:

db.col.aggregate([
{
$addFields: {
"status.value": { $toDouble: { $substr: [ "$status.value", 0, 10 ] } }
}
},
{
$out: "col"
}
])

或者在 C# 代码中:

var addFieldsBody = "{ $addFields: { \"status.value\": { $toDouble: { $substr: [ \"$status.value\", 0, 10 ] } } } }";

Col.Aggregate()
.AppendStage<BsonDocument>(BsonDocument.Parse(addFieldsBody))
.Out("col");

关于c# - 如何在 C# 中更新 mongo db 的所有记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53336797/

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