在使用Pymongo进行更新时,如果我将相同的查询放入shell中,我得到的结果(或错误)db=blog
在shell中,这有效:
db.posts.update(
{'permalink': 'TLxrBfyxTZjqOKqxgnUP'},
{'$inc': {'comments.0.num_likes':1}});
在Pymongo self.posts = blog.posts
,以下不起作用
self.posts.update({'permalink': 'TLxrBfyxTZjqOKqxgnUP'},
{'$inc': {'comments.0.num_likes':1}})
我也在传单上试过comments.[0].num_likes
......
日志中没有报告错误,并且此更新返回1作为触摸的文档数,这是正确的,该数据未被更改。
其他非索引更新在两者中都有效。
我在这里缺少什么?
谢谢!
答案 0 :(得分:0)
请记住,shell中的blog.posts
是字符串,但在python中是一个变量。
尝试:
from pymongo import MongoClient
con = MongoClient("mongodb://user:pass@127.0.0.1:"+port+"/blog")
db=con['blog']
db['posts'].update({'permalink': 'TLxrBfyxTZjqOKqxgnUP'},
{'$inc': {'comments.0.num_likes':1}})