Welcome to Microngo’s documentation!

A Quick Microngo Introduction

Microngo is small, fast, and lightweight MongoDB toolkit for python.

Install

Install Microngo using PIP:

pip install Microngo

or install from source:

python setup.py install

Example

Microngo example:

from microngo import Microngo
from datetime import datetime
from random import randrange

#
# Client
#

db = Microngo('localhost', 27017, db="microngo_test")

#
# Insert data
#

contact = db.insert("contact")
contact.name = "Suryadi"
contact.gender = "male"
contact.created = datetime.utcnow()
contact.status = 1
contact.phone = {
        "home": "(233) 233176",
        "cell": "+62122312"
}
contact_id = contact.save()
print("contact id:", contact_id) # Print info

# Insert many
calls = db.insert("calls")
for i in range(0, 10):
        calls.no = i
        calls.phone = randrange(1000, 9999)
        calls.add() # Add
calls.save() # Save

#
# Read data
#

contact_data = db.query("contact").find().sort('name', 1).first()
if contact_data:
        print("name:", contact_data.name)
        print("gender:", contact_data.gender)

calls_data = db.query("calls").find().all()
for item in calls_data:
        print("no:", item.no)
        print("phone:", item.phone)

#
# Update data
#

suryadi_data = db.query("contact").find_by(name="Suryadi").first()
if suryadi_data:
        suryadi_data.name = "Em Suryadi"
        suryadi_data.save()
        print("update id", suryadi_data._id)

#
# Paginate
#

paginated_data = db.query("calls").find().paginate(1, per_page=2)
# Info
print("total pages:", paginated_data.pages)
print("current page:", paginated_data.page)
print("has next page:", paginated_data.has_next())
print("next page:", paginated_data.next_num)
print("has prev page:", paginated_data.has_prev())
print("prev page:", paginated_data.prev_num)
# Item
for call in paginated_data.items:
        print("call no.", call.no)

#
# Delete data
#

calls_data = db.query("calls").find().limit(5).sort('no', 1).all()
for call in calls_data:
        print("call no.", call.no)
        call.remove()

API

class microngo.Microngo(*args, **kwargs)[source]
Parameters

db (str or None) – Database name. This param is optional, you can use database() to set current database.

database(database)[source]

Set current database

Parameters

database (str) – Database name

Returns

Microngo

query(collection)[source]

Create query object

Parameters

collection (str) – Collection name

Returns

Query

insert(collection)[source]

Insert into collection

Parameters

collection (str) – Collection name

Returns

Document

class microngo.Query(collection, cursor=None)[source]
Parameters
  • collection (obj) – PyMongo collection object

  • cursor (obj or None) – PyMongo cursor object

find_by(**kwargs)[source]
Returns

Query

raw()[source]

Get raw result.

Returns

raw result from PyMongo

one()[source]

Get single document.

Returns

Document or None

Raises

Exception – if the result type isn’t dict

first()[source]

Get first document from list or from single document result.

Returns

Document or None

Raises

Exception – if the result type isn’t dict and not iterable

all()[source]

Get all document in list.

Returns

list of Document or []

Raises

Exception – if the result is not iterable

paginate(page, per_page=20)[source]

Crate pagination query

Returns

Pagination or None

class microngo.Document(collection, data=None)[source]
Parameters
  • collection (obj) – PyMongo collection object

  • data (dict or None) – Data for document

add()[source]

Add document to list, then insert to collection with insert_many function.

raw()[source]

Get raw data or dict from document.

Returns

dict

save()[source]

Save document to collection.

Returns

list of OjectId or single ObjectId

remove()[source]

Remove document from collection.

class microngo.Pagination(query, page, per_page, total, items)[source]
property pages

The total number of pages

property next_num

The next page number.

has_next()[source]

Returns True if a next page exists.

property prev_num

The previous page number.

has_prev()[source]

Returns True if a previous page exists.

Indices and tables