Han*_*pan 9 python mongodb pymongo
我正在尝试运行以下查询:
data = {
'user_id':1,
'text':'Lorem ipsum',
'$inc':{'count':1},
'$set':{'updated':datetime.now()},
}
self.db.collection('collection').update({'user_id':1}, data, upsert=True)
Run Code Online (Sandbox Code Playgroud)
但是两个'$'查询导致它失败.是否有可能在一个声明中这样做?
Rem*_*iet 15
首先,当你提出这样的问题时,添加有关失败原因的信息非常有帮助(例如复制错误).
您的查询失败,因为您将$运算符与文档覆盖混合在一起.您也应该为$ user_id和文本字段使用$ set运算符(尽管此user_id更新中的部分与此示例无关).
所以将其转换为pymongo查询:
db.test.update({user_id:1},
{$set:{text:"Lorem ipsum", updated:new Date()}, $inc:{count:1}},
true,
false)
Run Code Online (Sandbox Code Playgroud)
我删除了user_id更新,因为这是没有必要的.如果文档存在,则此值将为1.如果该值不存在,则upsert会将更新的查询部分复制到新文档中.
| 归档时间: |
|
| 查看次数: |
9173 次 |
| 最近记录: |