微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决按索引更新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 举报,一经查实,本站将立刻删除。