mongodbplus

Use pymongo with a bit of sugar.


Keywords
json, mongo, mongodb
License
MIT
Install
pip install mongodbplus==0.3

Documentation

A mondodb wrapper

Initialize module

db_name = 'testDatabase'
db = MongodbPlus(db_name)

Setting collection name

You can set collection name using the .setCollectionName()

colName = 'users'
db.setCollectionName(colName)

Or passing parameter collectionName

colName = 'users'
db.findOne(collectionName=colName)
db.findMany(collectionName=colName)

If .setCollectionName() was set you don't need to pass parameter collectionName unless you are inserting or deleting from another collection.

Drop collection

collationName='fakeUsers'
db.dropCollection(collationName)

Count number of documents in a collection

queryFilter={}
db.count(queryFilter,collectionName='users')

Get all databases

databases = db.showDatabases()

Insert one document

documentData = {
    'name':'anthony',
    'age':22
}
# check for duplicate key before inserting document
db.insertOne(documentData,checkDuplicate=True,duplicateKey='username',collectionName='users')
# follow collection schema, schema is create when first
# document is inserted in collection
# change it in json file __defaults__.json
db.insertOne(documentData,checkSchema=True,collectionName='users')

Insert many document

documentData = [
    {
        'name':'anthony',
        'age':22
    },
    {
        'name':'jake',
        'age':18
    }
]
# check for duplicate key before inserting document
db.insertMany(documentData,checkDuplicate=True,duplicateKey='username',collectionName='users')
# follow collection schema, schema is create when first
# document is inserted in collection
# change it in json file __defaults__.json
db.insertOne(documentData,checkSchema=True,collectionName='users')

Get all collections in current database

collections = db.showCollections()

Find one document from collection

queryFilter = {'name':'anthony'}
user = db.findOne(queryFilter)

Or

queryFilter = {'name':'anthony'}
user = db.findOne(queryFilter,collectionName='users')

Find many documents from collection

queryFilter = {'name':'anthony'}
user = db.findMany(queryFilter)

Or

queryFilter = {'name':'anthony'}
user = db.findMany(queryFilter,collectionName='users')

Delete one document

queryFilter = {'name':'anthony'}
db.deleteOne(queryFilter,collectionName='fakeUsers')

Delete many documents

queryFilter = {'name':'anthony'}
db.deleteMany(queryFilter,collectionName='fakeUsers')

Update one document

queryFilter = {'name':'anthony'}
newData = {'name':'tony','initial':'a'}
db.updateOne(queryFilter,newData,collectionName='users')

Update many documents

queryFilter = {'name':'anthony'}
newData = {'name':'tony','initial':'a'}
db.updateMany(queryFilter,newData,collectionName='users')

Add key books to all documents in users collection

Key_Value = { 'books':'list' }
db.addKey(Key_Value,collectionName='users')

Remove key books from all documents in users collection

Key_Value = { 'books':'list' }
db.removeKey(Key_Value,collectionName='users')

pipeline: this pipeline will group all username where user is over the age 21

pipeLine = [{
        '$group' : {'_id' : "$username", 'total' : {'$sum' : 1}},
        '$sort':{'age':{'$gt':21}}
}]
db.aggregate(pipeLine,collectionName='users')

Export database

exportToPath = './backups/'
db.export(exportToPath)

Import database

This will delete any database with testDatabase name

databasePath = './backups/testDatabase.json'
db.Import(databasePath)