又一个MongoDB驱动程序
nmongo的Python项目详细描述
用于cpython和micropython的mongodb客户端。
它有类似mongo shell的api。
支撑平台
- cpython 3.4+https://www.python.org
- micropython(unix)http://docs.micropython.org/en/latest/unix/
支持数据库
- MongoDB 3.2、3.4、3.6
安装
cpython
$ python3 -m pip install nmongo
微蟒
$ micropython -m upip install micropython-errno \ micropython-os \ micropython-socket \ micropython-time \ micropython-datetime \ micropython-binascii \ micropython-random \ micropython-struct \ micropython-base64 \ micropython-unittest $ micropython -m upip install nmongo
示例
连接到数据库
>>> import nmongo >>> db = nmongo.connect('servername', 'somewhatdatabase') >>>
ssl连接
>>> import nmongo >>> db = nmongo.connect('servername', 'somewhatdatabase', use_ssl=True) >>>
或
>>> import nmongo >>> db = nmongo.connect('servername', 'somewhatdatabase', use_ssl=True, ssl_ca_certs='/path/to/something-cert.crt) >>>
用户认证
>>> import nmongo >>> db = nmongo.connect('servername', 'somewhatdatabase', user='user', password='password') >>>
创建
>>> db.fruits.insert({'name': 'apple', 'price': 200}) 1 >>> db.fruits.insert([{'name': 'orange', 'price': 100}, {'name': 'banana', 'price': 50}]) 2 >>> db.fruits.count() 3 >>>
读取
>>> cur = db.fruits.find({'name': 'banana'}) >>> cur.fetchone() {'price': 50, '_id': ObjectId("5826b2313d28909ce9f6ea63"), 'name': 'banana'} >>> cur = db.fruits.find() >>> cur.fetchall() [{'price': 200, '_id': ObjectId("5826b2273d28909ce9f6ea61"), 'name': 'apple'}, {'price': 100, '_id': ObjectId("5826b2313d28909ce9f6ea62"), 'name': 'orange'}, {'price': 50, '_id': ObjectId("5826b2313d28909ce9f6ea63"), 'name': 'banana'}] >>>
更新
>>> db.fruits.update({'name': 'banana'}, {'$inc': {'price': 20}}) {'nModified': 1, 'ok': 1, 'n': 1} >>> cur = db.fruits.find({'name': 'banana'}) >>> cur.fetchone() {'_id': ObjectId("5823dd6d3d28909ce9f6e99c"), 'name': 'banana', 'price': 70} >>>
删除
>>> db.fruits.remove({'name': 'banana'}) 1 >>> db.fruits.count() 2
计算每个采集记录
>>> for collection in db.getCollections(): ... print(collection.name, collection.count()) ... fruits 3 >>> db.getCollection('fruits').count() 3 >>>
另请参见mongo shell方法(集合和数据库部分)。
未实现的功能
普通
- 网格
微蟒
- SSL
- datetime.datetime
- time.struct_时间