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