gpt4 book ai didi

mongodb - 更新 MongoDB 中的嵌套文档

转载 作者:可可西里 更新时间:2023-11-01 10:35:13 26 4
gpt4 key购买 nike

我正在尝试更新嵌套在 MongDB 文档中的散列。我知道用于数组的 $push 函数,以及用于完全覆盖元素的 $set 函数,但我不太了解我正在寻找的行为。

这是我想要得到的:

之前:

{
'id' => 1234,
'evaluators' => {
'A' => { 'x' => 2, 'y' => 4 },
}
}

预计,之后:

{
'id' => 1234,
'evaluators' => {
'A' => { 'x' => 2, 'y' => 4 },
'B' => { 'x' => 3, 'y' => 5 },
}
}

我试过(在 Ruby 中):

coll.update({ :id => id },
{ '$set' => {
'evaluators' => {
evaluator_name => { 'adequacy' => adequacy,
'fluency' => fluency }
}
} } )

但它覆盖了我的 evaluators 散列的内容,我最终得到:

{
'id' => 1234,
'evaluators' => {
'B' => { 'x' => 3, 'y' => 5 },
}
}

我可以通过查询将整个文档加载到 Ruby 中,更改数据并将其重新插入到数据库中,但我想知道是否有更好的方法,我不知道。

最佳答案

试试这个:

coll.update({ :id = > id }, { '$set' => {
"evaluators.#{evaluator_name}" => {
'adequacy' => adequacy, 'fluency' => fluency
}
}})

关于mongodb - 更新 MongoDB 中的嵌套文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8292707/

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