Skip to main content

MongoDB client for CPython and MicroPython.

It has mongo shell like APIs.

Support platform

Support database

  • MongoDB 3.2, 3.4, 3.6

  • Azure CosmosDB (MongoDB API)

Install

CPython

$ python3 -m pip install nmongo

MicroPython

$ 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

Example

Connect to Database

>>> import nmongo
>>> db = nmongo.connect('servername', 'somewhatdatabase')
>>>

SSL connection

>>> import nmongo
>>> db = nmongo.connect('servername', 'somewhatdatabase', use_ssl=True)
>>>

or

>>> import nmongo
>>> db = nmongo.connect('servername', 'somewhatdatabase', use_ssl=True, ssl_ca_certs='/path/to/something-cert.crt)
>>>

User Authentication

>>> import nmongo
>>> db = nmongo.connect('servername', 'somewhatdatabase', user='user', password='password')
>>>

Connect to Azure CosmosDB (MongoDB API)

>>> import nmongo
>>> db = nmongo.connect('xxx.mongo.cosmos.azure.com', 'somewhatdatabase', user='xxx', password='password', port = 10255, use_ssl=True)
>>>

Create

>>> db.fruits.insert({'name': 'apple', 'price': 200})
1
>>> db.fruits.insert([{'name': 'orange', 'price': 100}, {'name': 'banana', 'price': 50}])
2
>>> db.fruits.count()
3
>>>

Read

>>> 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'}]
>>>

Update

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

Delete

>>> db.fruits.remove({'name': 'banana'})
1
>>> db.fruits.count()
2

Count each collection records

>>> for collection in db.getCollections():
...     print(collection.name, collection.count())
...
fruits 3
>>> db.getCollection('fruits').count()
3
>>>

See also mongo Shell Methods (Collection and Database sections).

Features Not Implemented

All platform

  • GridFS

MicroPython

  • ssl (so that can’t connect to Azure CosmosDB)

  • datetime.datetime

  • time.struct_time

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nmongo-0.4.2.tar.gz (13.1 kB view details)

Uploaded Source

File details

Details for the file nmongo-0.4.2.tar.gz.

File metadata

  • Download URL: nmongo-0.4.2.tar.gz
  • Upload date:
  • Size: 13.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.4.2 requests/2.22.0 setuptools/45.2.0 requests-toolbelt/0.8.0 tqdm/4.30.0 CPython/3.8.5

File hashes

Hashes for nmongo-0.4.2.tar.gz
Algorithm Hash digest
SHA256 621b3261f88d81a8252f07f075bdc61f6c2c66f16fc932b2f030c109a505cbc2
MD5 abf94bf886f7c2d7c157c5096a6dc5dd
BLAKE2b-256 67af352c5ec21da959265ea7452c3ed8f4dc5a0f2a856c32d98c1a3b914dcd1b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page