python連接mongodb操作數據示例(mongodb數據庫配置類)


1、數據庫配置類 MongoDBConn.py

#encoding=utf-8
'''

Mongo Conn連接類
'''

import pymongo

class DBConn:
    conn = None
    servers = "mongodb://localhost:27017"

    def connect(self):
        self.conn = pymongo.Connection(self.servers)

    def close(self):
        return self.conn.disconnect()

    def getConn(self):
        return self.conn

2、ngoDemo.py 類

#encoding=utf-8
'''

Mongo操作Demo
Done:
'''
import MongoDBConn

dbconn = MongoDBConn.DBConn()
conn = None
lifeba_users = None

def process():
    #建立連接
    dbconn.connect()
    global conn
    conn = dbconn.getConn()

    #列出server_info信息
    print conn.server_info()

    #列出全部數據庫
    databases = conn.database_names()
    print databases

    #刪除庫和表
    dropTable()
    #添加數據庫lifeba及表(collections)users
    createTable()
    #插入數據
    insertDatas()
    #更新數據
    updateData()
    #查詢數據
    queryData()
    #刪除數據
    deleteData()

    #釋放連接
    dbconn.close()

def insertDatas():
    datas=[{"name":"steven1","realname":"測試1","age":25},
           {"name":"steven2","realname":"測試2","age":26},
           {"name":"steven1","realname":"測試3","age":23}]
    lifeba_users.insert(datas)

def updateData():
    '''只修改最后一條匹配到的數據
           第3個參數設置為True,沒找到該數據就添加一條
           第4個參數設置為True,有多條記錄就不更新
    '''
    lifeba_users.update({'name':'steven1'},{'$set':{'realname':'測試1修改'}}, False,False)

def deleteData():
    lifeba_users.remove({'name':'steven1'})

def queryData():
    #查詢全部數據
    rows = lifeba_users.find()
    printResult(rows)
    #查詢一個數據
    print lifeba_users.find_one()
    #帶條件查詢
    printResult(lifeba_users.find({'name':'steven2'}))
    printResult(lifeba_users.find({'name':{'$gt':25}}))

def createTable():
    '''創建庫和表'''
    global lifeba_users
    lifeba_users = conn.lifeba.users

def dropTable():
    '''刪除表'''
    global conn
    conn.drop_database("lifeba")

def printResult(rows):
    for row in rows:
        for key in row.keys():#遍歷字典
            print row[key], #加, 不換行打印
        print ''

if __name__ == '__main__':
    process()


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM