Python 操作MongoDB 数据库基本使用
确保已经正确安装
MongoDB
,文章省略安装步骤
Python
操作MongoDB
,需先安装对应驱动
pip install pymongo
开始使用
获取数据库连接
import pymongo
client = pymongo.MongoClient("mongodb://localhost:27017/")
选择数据库
db = client.db_name
// 或者
db = client[db_name]
选择数据库时如果数据库不存在并不报错,相当于新建数据库,但只在有内容插入时才会真正创建数据库。所以使用时需要注意数据库的拼写不要有问题。
在实际使用时,可以先判断数据库是否存在
dblist = db.list_database_names()
if 'citydb' in dblist:
print("存在数据库:citydb")
选择集合
db.table_name
// 或者
db[table_name]
选择集合也一样,如果集合不存在并不报错,相当于新建集合,但只在有内容插入时才会真正创建集合。所以使用时需要注意集合的拼写不要有问题。
使用时先判断表是否存在
collist = db.list_collection_names()
if 'citycoll' in collist:
print('存在集合:citycoll')
插入数据
数据插入使用insert_one() 和 insert_many() 方法,前者插入一条数据,后者插入多条数据
document = {
"title":"pymongo",
"desc":"python操作mongodb"
}
many_document = [document, document]
oneId = db.citycoll.insert_one(document)
// or
manyId = db.citycoll.insert_many(many_document)
每次插入的数据都对应一个ObjectId
>>>oneId
ObjectId(...)
>>>manyId
[ObjectId(...), ObjectId(...)]
查询数据
插入数据后,可以使用find()方法或者find_one方法进行查询,其中find_one()方法查询得到单个结果,如果集合中存在多条数据,返回第一条;find()方法返回的是一个生成器对象。
result = db.citycoll.find_one({"title":"pymongo"})
对于多条数据的查询可以使用find()方法
results = db.citycoll.find({"title":"pymongo"})
对于条件查询
符号 | 含义 | 示例 |
---|---|---|
$lt | 小于 | {‘age’: {’$lt’: ‘20’}} |
$gt | 大于 | {‘age’: {’$gt’: ‘20’}} |
$lte | 小于等于 | {‘age’: {’$lte’: ‘20’}} |
$gte | 大于等于 | {‘age’: {’$gte’: ‘20’}} |
$ne | 不等于 | {‘age’: {’$ne’: ‘20’}} |
$in | 在范围内 | {‘age’: {’$in’: ‘20’}} |
$nin | 不在范围内 | {‘age’: {’$nin’: ‘20’}} |
如果查询结果不存在则返回None
排序
排序时,直接调用sort()方法,并在其中传入排序的字段及升降序标志即可。示例如下:
result = db.collection.find().sort('title', pymongo.ASCENDING)
更新数据
对于数据更新,使用update()方法执行更新的方法和更新后的数据即可。
condition = {'title': 'pymongo'}
row = db.collection.find_one(condition)
row['auther'] = 'walle'
db.collection.update(condition, row)
这里更新了title=pymongo
的一条数据,先根据指定条件查询数据,修改数据后将原条件和新数据传入进行更新。
删除数据
删除数据直接调用remove()方法,指定删除的条件即可,此时符合条件的所有数据均会被删除。示例如下;
db.collection.remove({'title': 'pymongo'})
其它操作参考官方文档https://docs.mongodb.com/drivers/pymongo