python pymongo操作之增删改查

import pymongo  #导入操作mongo的模块

client=pymongo.MongoClient(host='localhost',port=27017)  #连接本地的服务端
db=client.school  #指定操作的数据库
collection=db.students  #指定操作的集合

插入数据

a1={
'id':5,
'name':'憨憨',
'age':22,
'gender':'男'
}
a2={
'id':5,
'name':'憨憨',
'age':22,
'gender':'男'
}

插入一个文档(3.x不推荐使用了)
collection.insert(a1)
插入多个文档((3.x不推荐使用了)
collection.insert([a1,a2])

插入一个文档(推荐使用)
collection.insert_one(a1)
插入多个文档(推荐使用)
collection.insert([a1,a2])

删除集合中的文档(数据记录行)

①remove({query})
删除的是所有查询条件的文档(现在不推荐使用这种方法)
②remove_one({query})
删除的是查询条件的文档的第一个
③remove_many({query})
删除的是所有查询条件的文档(推荐使用这种方法)
如果方法中不传参数的话,就是把这个集合中(表)所有文档全部删除

删除集合(表)

①drop()
collection.drop()

如果数据库中只有一个集合时,删除了最后一个集合,这个数据库就自动也删除了

更新数据

①update()   ((3.x现在已经不推荐使用了)
不加$set时,只能修改一个查询文档(数据记录行)的域(数据字段),并且是进行覆盖
result=collection.update({'name':'LEE'},{'age':20})
加了$set时,只修改第一个符合条件的文档(数据记录行)的域(数据字段),有这个字段(域)时就是修改,没有的时候就是添加,其他的已存在的字段(域)不变.
result=collection.update({'name':'憨憨'},{'$set':{'age':20}})
②update_one()
只修改第一个符合条件的文档(数据记录行)的域(数据字段),有这个字段(域)时就是修改,没有的时候就是添加,其他的已存在的字段(域)不变.
修改时必须加上$set,不然会报错.
③update_many()
修改所有符合条件的结果,有这个字段(域)时就是修改,没有的时候就是添加,其他的已存在的字段(域)不变.
修改时必须加上$set,不然会报错.

查询数据

①find_one({query})
student=collection.find_one({'name':'LEE'})
查找符合条件的第一个文档,得到的是整个文档的具体域
②find({query})
查找符合条件的所有文档,返回的是一个生成器对象.(需要遍历获取具体每个文档的域)

上一篇:记录面试题


下一篇:python-Pymongo UUID搜索不返回肯定存在的文档