网上关于python 操作mongoDB的相关文章相对不是很多,并且质量也不是很高!下面给出一个完整的 增删改查示例程序!
#!/usr/bin/python # -*- coding: utf-8 -*- import pymongo import re connection = pymongo.MongoClient('10.38.164.80',27017) tdb = connection.test collection = tdb.article #插入数据 try: insert_data={"id":"2","value":"abc"} collection.insert(insert_data) except BaseException: print "插入异常" #查询数据 try: print collection.find_one({"id":"2"}) cursor = collection.find({"title":re.compile("^.{0,50}(女神)")},{"title":1,"url":1}) for result in cursor: print type(result) #查看类型 print str(result).decode("unicode-escape") print result.get("title") #print str(result).decode('unicode_escape') except BaseException,e: print "查询数据异常" + str(e) #修改数据 try: collection.update({"id":"2"},{"$set":{"value":"123"}}) except BaseException,e: print "更新数据失败" print e #删除数据 try: collection.remove({"id":"2"}) except BaseException,e: print "删除数据异常" print e
工具类(面向对象,使用更方便)
# -*- coding: utf-8 -*- import pymongo import re class MongoUtil: def __init__(self,host,port): self.host=host self.port=port self.mongoClient=pymongo.MongoClient(host,port) def insert(self,dbName,collectionName,data): db=self.mongoClient.get_database(dbName) collection=db.get_collection(collectionName) collection.insert(data) def query(self,dbName,collectionName,queryObj,fieldObj): db = self.mongoClient.get_database(dbName) collection = db.get_collection(collectionName) if fieldObj.__eq__({}): return collection.find(queryObj) else: return collection.find(queryObj,fieldObj) def update(self,dbName,collectionName,queryObj,newInfo): db = self.mongoClient.get_database(dbName) collection = db.get_collection(collectionName) collection.update(queryObj,newInfo) def delete(self,dbName,collectionName,queryObj): db = self.mongoClient.get_database(dbName) collection = db.get_collection(collectionName) collection.delete_many(queryObj) mongoClient = MongoUtil("10.38.164.80",27017) #增加数据 try: mongoClient.insert("test","article",{"id":3,"value":"abcde"}) except BaseException,e: print e #查询数据 cursor = mongoClient.query("test","article",{"title":re.compile(".{0,50}(明星)")},{"title":1}) for result in cursor: print str(result).decode("unicode-escape") #修改数据 mongoClient.update("test","article",{"id":3},{"$set":{"value":"12345"}}) #删除数据 mongoClient.delete("test","article",{"id":3})
需要安装mongo库,安装命令如下(ubuntu):pip install pymongo