ValueError: update only works with $ operators
2015-07-05 23:20
465 查看
问题:在执行pymongo的update语句时,提示了ValueError: update only works with $ operators
脚本:db.user.update_one({"name":"zhao"},{"name":"qian"})
原因:update语句需要用$进行操作,加上$set即可,db.user.update_one({"name":"zhao"},{"$set":{"name":"qian"}})
这句话的意思是找到了{"name":"zhao"}的字段就将其更新为{"name":"qian"},如果找不到就添加一条的参数是upsert=False。
update语句可以直接用db.user.update(),这个语句可以更改多条,发现如果只更改一项的时候没有添加"$set"也没有报错。(update_one只能更改一条数据)
注意这里是指更改找到的第一条,如果是要更改全部的话需要指定multi=True,注意True的T一定要是大写,如db.user.update({"name":"sun"},{"$set":{"name":"sun2"}},multi=True)
注:$操作符,可以用$set、$inc、$push进行更新操作,网上有人测试过使用$set和$inc时间区别不大,但是$push时间慢于前两者
(db是我指定的数据库,user是我指定的聚合的名字)
脚本:db.user.update_one({"name":"zhao"},{"name":"qian"})
原因:update语句需要用$进行操作,加上$set即可,db.user.update_one({"name":"zhao"},{"$set":{"name":"qian"}})
这句话的意思是找到了{"name":"zhao"}的字段就将其更新为{"name":"qian"},如果找不到就添加一条的参数是upsert=False。
update语句可以直接用db.user.update(),这个语句可以更改多条,发现如果只更改一项的时候没有添加"$set"也没有报错。(update_one只能更改一条数据)
注意这里是指更改找到的第一条,如果是要更改全部的话需要指定multi=True,注意True的T一定要是大写,如db.user.update({"name":"sun"},{"$set":{"name":"sun2"}},multi=True)
注:$操作符,可以用$set、$inc、$push进行更新操作,网上有人测试过使用$set和$inc时间区别不大,但是$push时间慢于前两者
(db是我指定的数据库,user是我指定的聚合的名字)
相关文章推荐
- iOS开发笔记之UITableView的使用
- iOS开发-UI 从入门到精通(二)
- Longest Consecutive Sequence
- [leetcode]longest consecutive sequence(java)
- iOS Storyboard unwind segues使用小结
- NGUI之刚体无限弹跳
- guide
- HDU---Children's queue(递归解法)
- {A} + {B}(unique水)
- 多机的sequence问题与处理
- UIview需要知道的一些事情:setNeedsDisplay、setNeedsLayout
- xib自定义UIView报错误 "forUndefinedKey:]: this class is not key value coding-compliant for the key"
- UISementedControl、UIPageControl
- ROS学习手记 - 2 Build Package 生成包
- require.js 应用实例
- iPhone 应用程序开发 UIView和VIWindow
- Hive 接口介绍(Web UI/JDBC)
- 日志三:GUI事件处理
- unknown command-line argument or argument value build错误
- 《开源框架那点事儿20》:发布TinyUI前端框架