1 #-*- coding: utf-8 -*- 2 #python2.7x 3 4 from pymongo import MongoClient 5 6 def get_db(): 7 #創建鏈接 8 client = MongoClient("localhost", 27017) 9 #test,還有其餘寫法 10 db = client.test 11 return db 12 13 def get_collection(db): 14 #選擇集合(mongo中collection和database都是lazy建立的,具體能夠google下) 15 collection = db['posts'] 16 print collection 17 18 def insert_one_doc(db): 19 #插入一個document 20 posts = db.posts 21 post = {"name":"lzz", "age":25, "weight":"55"} 22 post_id = posts.insert(post) 23 print post_id 24 25 def insert_mulit_docs(db): 26 #批量插入documents,插入一個數組 27 posts = db.posts 28 post = [ {"name":"nine", "age":28, "weight":"55"}, 29 {"name":"jack", "age":25, "weight":"55"}] 30 obj_ids = posts.insert(post) 31 print obj_ids 32 33 ##查詢,能夠對整個集合查詢,能夠根ObjectId查詢,能夠根據某個字段查詢等 34 def get_all_colls(db): 35 #得到一個數據庫中的全部集合名稱 36 print db.collection_names() 37 38 def get_one_doc(db): 39 #有就返回一個,沒有就返回None 40 posts = db.posts 41 print posts.find_one() 42 print posts.find_one({"name":"jack"}) 43 print posts.find_one({"name":"None"}) 44 return 45 46 def get_one_by_id(db): 47 #經過objectid來查找一個doc 48 posts = db.posts 49 obj = posts.find_one() 50 obj_id = obj["_id"] 51 print "_id 爲ObjectId類型 :" 52 print posts.find_one({"_id":obj_id}) 53 #須要注意這裏的obj_id是一個對象,不是一個str,使用str類型做爲_id的值沒法找到記錄 54 print "_id 爲str類型 " 55 print posts.find_one({"_id":str(obj_id)}) 56 57 #能夠經過ObjectId方法把str轉成ObjectId類型 58 from bson.objectid import ObjectId 59 print "_id 轉換成ObjectId類型" 60 print posts.find_one({"_id":ObjectId(str(obj_id))}) 61 62 def get_many_docs(db): 63 #mongo中提供了過濾查找的方法,能夠經過各 64 #種條件篩選來獲取數據集,還能夠對數據進行計數,排序等處理 65 posts = db.posts 66 #全部數據,按年齡排序, -1是倒序 67 all = posts.find().sort("age", -1) 68 69 count = posts.count() 70 print "集合中全部數據 %s個"%int(count) 71 for i in all: 72 print i 73 74 #條件查詢 75 count = posts.find({"name":"lzz"}).count() 76 print "lzz: %s"%count 77 for i in posts.find({"name":"lzz", "age":{"$lt":20}}): 78 print i 79 80 def clear_coll_datas(db): 81 #清空一個集合中的全部數據 82 db.posts.remove({}) 83 84 if __name__ == "__main__": 85 db = get_db() 86 obj_id = insert_one_doc(db) 87 obj_ids = insert_mulit_docs(db) 88 #get_all_colls(db) 89 #get_one_doc(db) 90 #get_one_by_id(db) 91 #get_many_docs(db) 92 clear_coll_datas(db)