在这一章中,我们会详细讲解mongodb更新的多种操作语法。
单条记录的更新
*更新指令如下:
db.test.updateOne(
{ "city_id" : "298" },
{ $set: { "city_name" : "阿坝5" } }
)
1.{ "city_id" : "298" } 为查询语句
2.{ $set: { "city_name" : "阿坝5" } } 为更新语句
* 执行结果如下:
{ "acknowledged" : true, "matchedCount" : 1, "modifiedCount" : 1 }
*删除指令如下:
db.test.deleteOne( { "city_id" : "298" } );
1.{ "city_id" : "298" } 为查询语句
* 执行结果如下:
{ "acknowledged" : true, "deletedCount" : 1 }
多条记录的更新
1.更新多条记录:
db.test.updateMany(
{ "city_name" : "阿坝" } ,
{ $set: { "status" : 1 }}
);
另外一种写法更通用:
db.test.update({ "city_name" : "阿坝" },{$set: { "status" : 1 }},false,true)
更新多条记录结果:
{ "acknowledged" : true, "matchedCount" : 2, "modifiedCount" : 2 }
2. 删除多条记录指令:
db.test.deleteMany( { "city_name" : "阿坝" } );
删除多条记录结果:
{ "acknowledged" : true, "deletedCount" : 8 }
3. 从文档中移除指定的键
db.test.update({"city_name" : "阿坝"},{$unset:{'status':1}})
从文档中移除status字段
python爬虫中实现批量执行更新语句
# -*- coding: utf-8 -*-
# @Time : 20/1/15 下午6:09
# @Author : cc
# @FileName: te.py
from pymongo import UpdateOne
from utils import mongo_util
collection_test = mongo_util.get_clllection('test', 'test')
update1 = UpdateOne({'_id': '299'}, {'$set': {"status": 1}})
update2 = UpdateOne({'_id': '301'}, {'$set': {"status": 0}})
write_list = [update1, update2]
collection_test.bulk_write(write_list, ordered=False)
python爬虫中数据更新中遇到的坑,及填坑过程
update(<query>,<update>,<upsert>,<multi>),
其中<query>表示筛选的条件,<update>是要更新的数据
multi=True 更新匹配到的所有记录 multi=False 更新匹配到的第一条记录
(默认值为False)