我需要在mongodb中找到所有关键字以1-9开头的文档,然后在关键字前添加一个"+",我可以轻松找到文档,但无法弄清楚如何更新它们.
我试过这个,但它不起作用
db.placements.update({program_id:{$in:[113,107]},
keyword:{$regex:'^[0-9]', $options:'i'}},
{keyword:"+"+$keyword})
Run Code Online (Sandbox Code Playgroud)
它无法识别$ keyword,我也试过'.keyword','keyword',它们都不起作用.有没有办法像Java一样引用文档本身,使用'this',所以我可以做类似的事情
this.keyword: "+" + this.keyword
Run Code Online (Sandbox Code Playgroud)
Ana*_*lan 15
您必须$set在更新查询中使用运算符来更新特定字段.此外,您无法在更新查询中连接字符串.一种方法是forEach()在shell中使用游标:
db.placements.find({program_id:{$in:[113,107]}, keyword:{$regex:'^[0-9]', $options:'i'}})
.forEach(function(doc){
db.placements.update({_id:doc._id}, {$set:{"keyword":"+" + doc.keyword}})
})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7464 次 |
| 最近记录: |