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 info
print("Contact ID:", contact_id)
# Insert many
calls = db.insert("Calls")
for i in range(0, 10):
calls.No = i
calls.Phone = randrange(1000, 9999)
# Add
calls.add()
# Save
calls.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
-
-
class
microngo.
Query
(collection, cursor=None)[source]¶ Parameters: - collection (obj) – PyMongo collection object
- cursor (obj or None) – PyMongo cursor object
-
one
()[source]¶ Get single document.
Returns: Document
or NoneRaises: Exception – if the result type isn’t dict
-
first
()[source]¶ Get first document from list or from single document result.
Returns: Document
or NoneRaises: 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