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})

查找符合条件的所有文档,返回的是一个生成器对象.(需要遍历获取具体每个文档的域)