更改数据
得到的数据可能会与数据库中原有的数据相同,所以通过更改数据的方式添加数据
db.collectionName.update(query,update,upsert,multi)
功能:修改一个文档
参数:
query:筛选要修改的文档 相当于where子句,用法同查找
update:将数据更新为什么内容相当于set操作,需要使用修改器操作
upsert:bool值,默认为false,表示如果query的文档不存在则无法修改,如果设置为true表示如果query的文档不存在则根据query和update参数插入新的文档
multi:bool值,默认false 如果有多条符合筛选条件的文档,则只修改第一条,如果设置为true则修改所有符合条件的文档
例子:
import pymongo
client = pymongo.MongoClient('localhost', 27017)
db = client.xing
for i in data:
shu = {
'公众号名称':i[0],
'第几条': i[1],
'文章标题': i[2],
'阅读量': int(i[3]),
'在看量': int(i[4]),
'发送时间': i[5],
}
db.shu.update({"文章标题" : i[2],'公众号名称':i[0]},{ "$set": shu},upsert = True)
#更改规则 如果“文章标题”和“公众号名称”这两个字段都和数据库中的数据相同,那就更改数据,如果“文章标题”和“公众号名称”中有一个字段和公众号中的数据不同,那就添加这个数据
多条件排序
查了很多文档都只看到了,一个条件排序教程,后来综合了很多博客,终于成功了
例子:
mydoc = db.shuju.find().sort([("发送时间",-1),("在看量倍数",-1)])
#先以发送时间降序排序,再用在看量倍数降序排序