问题描述
我对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 (将#修改为@)