pymongo是Python中用来操作MongoDB的一个库,MongoDB是一个基于分布式文件存储的数据库,旨在为WEB应用提供可扩展的高性能数据存储解决方案。其文件存储格式类似于JSON,叫BSON,通俗的理解,就是Python中的字典键值对格式。
BSON结构文档:
{
title: 'MongoDB',
last_editor: '192.168.1.122',
last_modified: new Date('27/06/2011'),
body: 'MongoDB introduction',
categories: ['Database', 'NoSQL', 'BSON'],
revieved: false
}
利用Python操作MomgoDB的步骤:
-
在电脑上安装MongoDB
-
在Python上安装pymongo的库
pip install pymongo
可能出现的版本匹配问题:
1.pymongo.errors.ConfigurationError: Server at 10.168.20.16:27017 reports wire version 5, but this version of PyMongo requires at least 6 (MongoDB 3.6).
降低版本
2.AttributeError: module 'platform' has no attribute 'linux_distribution'
升高版本
PyMongo的使用:
-
连接MongoClient
from pymongo import MongoDB settings = { "ip":"mongodb://xxx.xxx.xxx.xxx:27017,xxx.xxx.xxx.xxx:27017", #ip #"ip":"xxx.xxx.xxx.xxx", #ip #"port":27017, #端口 "db_name" : "print", #数据库名字 "set_name" : "img_feature" #集合名字 } conn = MongoClient(setings['ip'])
-
获取数据库(database)
db = conn[settings['db_name']]
-
获取集合Collection
Collection是存储在MongoDB中的一组文件。类似于关系型数据库中的表。my_set = db['settings['set_name']']
-
插入数据
my_set.insert(dic)
-
更新数据
my_set.update(dic, newdic)
-
删除数据
my_set.remove(dic)
-
查询
#多条查询 my_set.find(dic) #单条查询 my_set.find_one(dic)
-
聚合arrgregate
my_set.aggregate([{'$group': {'_id': '$imgTag'}}])
MongoDB的skip和limit方法
-
limit
-
skip
参考资料
Python3中使用PyMongo的方法详解
python使用pymongo操作mongo的完整步骤
MongoDB(七):聚合aggregate
mongo-05-聚合操作和索引
MongoDB Limit与Skip方法
PyMongo基本用法