按索引更新Mongodb文档中的1个或多个数组项

问题描述

我对mongodb还是很陌生,并且正在尝试找出一些更精确的查询。这是在node.js服务器上。

我想通过1个或多个索引来更新现有文档中的数组。 mongodb文档确实不能帮助初学者使用其语法,希望您能提供帮助。

    let updateArray = [
        {index:2,text:'boo',insert:false},{index:4,text:'bar',insert:true},{index:7,text:'bop',insert:false}
    ]
    db.collection(user).findAndModify(
        {_id:ObjectId(_id)},{ $set: { "array.$[index].text": updateArray[index] } },{ arrayFilters: updateArray,new: true }
    ) 

显然这没有用。用它为月球射击,但这是我想通过一个查询实现的一种示例。希望对于一个比我更有经验的人足够清楚,至少可以向我指出正确的方向。谢谢!

编辑:在下面的评论之后,这就是我之前的内容

{
    array : [
        "boo boo","boppidy"
    ]
}

及之后:

{
    array : [
        "boo boo","bar bar"
        "boppidy bop"
    ]
}

注意,我要push到索引以及set的新值。找到有用的提示后,当前代码给出了这一点,但我得到了Updating the path 'array' would create a conflict at 'array',这是有道理的,但不知道如何解决

db.collection(user).update(
        {_id:ObjectId(_id)},{   
            $set :  {
                "array.2" : "boppidy bop"
            },$push:{
                "array":{
                    $each: ["bar bar"],$position:1 
                    }
                }
        }
)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)