1. 程式人生 > >非關係型資料庫mongodb的語法模式

非關係型資料庫mongodb的語法模式

from pymongo import MongoClient



#連線
conn = MongoClient('127.0.0.1', 27017)

#進入資料庫
db = conn.edianzu  #連線mydb資料庫,沒有則自動建立

#進入集合
pinglun = db.pinglun  # 使用test_set集合,沒有則自動建立





#插入資料(insert插入一個列表多條資料不用遍歷,效率高, save需要遍歷列表,一個個插入)

#1/insert方式
pinglunDict = {
    'username':'小紅',
    
'headerimg': 'https://tvax3.sinaimg.cn/crop.0.0.750.750.180/006758Pyly8fg6x9s2jhtj30ku0ku74m.jpg', 'content': '王思聰吃熱狗又出周邊了!這次是搗蒜神器,想要[doge] ​​​​', 'contentimg': ['https://wx4.sinaimg.cn/mw690/006758Pyly1fx0etbf8f0j30yi1hwwwl.jpg', 'https://wx3.sinaimg.cn/mw690/006758Pyly1fx0etbpdnbj30k00qote5.jpg', 'https://wx1.sinaimg.cn/mw690/006758Pyly1fx0etbwqp2j30k00qo796.jpg
'], 'zanNum':0 } # pinglun.insert(pinglunDict) #2/save方式 # pinglun.save(pinglunDict) #新增多條資料到集合中 pinglunList = [ { 'username': '小李', 'headerimg': 'https://tvax3.sinaimg.cn/crop.0.0.750.750.180/006758Pyly8fg6x9s2jhtj30ku0ku74m.jpg', 'content': '王思聰吃熱狗又出周邊了!這次是搗蒜神器,想要[doge] ​​​​
', 'contentimg': ['https://wx4.sinaimg.cn/mw690/006758Pyly1fx0etbf8f0j30yi1hwwwl.jpg', 'https://wx3.sinaimg.cn/mw690/006758Pyly1fx0etbpdnbj30k00qote5.jpg', 'https://wx1.sinaimg.cn/mw690/006758Pyly1fx0etbwqp2j30k00qo796.jpg'], 'zanNum':0 }, { 'username': '小黑', 'headerimg': 'https://tvax3.sinaimg.cn/crop.0.0.750.750.180/006758Pyly8fg6x9s2jhtj30ku0ku74m.jpg', 'content': '王思聰吃熱狗又出周邊了!這次是搗蒜神器,想要[doge] ​​​​', 'contentimg': ['https://wx4.sinaimg.cn/mw690/006758Pyly1fx0etbf8f0j30yi1hwwwl.jpg', 'https://wx3.sinaimg.cn/mw690/006758Pyly1fx0etbpdnbj30k00qote5.jpg', 'https://wx1.sinaimg.cn/mw690/006758Pyly1fx0etbwqp2j30k00qo796.jpg'], 'zanNum':0 }, { 'username': '小花', 'headerimg': 'https://tvax3.sinaimg.cn/crop.0.0.750.750.180/006758Pyly8fg6x9s2jhtj30ku0ku74m.jpg', 'content': '王思聰吃熱狗又出周邊了!這次是搗蒜神器,想要[doge] ​​​​', 'contentimg': ['https://wx4.sinaimg.cn/mw690/006758Pyly1fx0etbf8f0j30yi1hwwwl.jpg', 'https://wx3.sinaimg.cn/mw690/006758Pyly1fx0etbpdnbj30k00qote5.jpg', 'https://wx1.sinaimg.cn/mw690/006758Pyly1fx0etbwqp2j30k00qo796.jpg'], 'zanNum':0 } ] # pinglun.insert(pinglunList) #或 # for item in pinglunList: # pinglun.save(item) #更新資料 # pinglun.update({'username':'小花'},{'$set':{'zanNum':1}},multi=True,upsert=True) # my_set.update( # < query > , # 查詢條件 # < update > , # update的物件和一些更新的操作符 # { # upsert: < boolean >, # 如果不存在update的記錄,是否插入 # multi: < boolean > , # 可選,mongodb 預設是false,只更新找到的第一條記錄 # } # ) # 把上面插入的資料內的age改為20 # #刪除某個文件 # pinglun.remove({查詢語句}) # pinglun.remove({'username': '小李'}) # #刪除整條記錄 # id = my_set.find_one({"name": "zhangsan"})["_id"] #刪除name=lisi的某個id的記錄 # pinglunimg = pinglun.find_one({'username':'小黑'})['_id'] # print(pinglun.remove(pinglunimg)) # #刪除集合裡的所有記錄 # pinglun.remove() #查詢具體某條資訊 #語法:find_one({條件key:條件value}) # result = pinglun.find_one({'username':'小黑'}) # result = pinglun.find({'username':'小黑','zanNum':0}) # result = pinglun.find().count() # print(result) # #查詢,大於$gt,大於等於$gte,小於$lt,小於等於$lte,不等於$ne # result = pinglun.find_one({ # 'zanNum':{'$ne':0} # }) # print(result) # pinglun.update({'username':'小花'},{'$set':{'zanNum':1}}) #在原基礎上進行增加 # pinglun.update({'username': '小花'}, {'$inc': {'zanNum': 1}}) # #and條件,》db.col.find({key1:value1, key2:value2}). # result = pinglun.find_one({ # 'zanNum': {'$lt': 50}, # 'username':'小花' # }) # print(result) # #OR 條件 # result = pinglun.find_one({ # '$or':[ # {'zanNum':0}, # {'zanNum':2} # ] # }) # print(result) # # >db.col.find( # # {$or: [ # # {key1: value1}, {key2: value2} # # ] # # } # # ) # #limit()方法接受一個數字引數,該引數指定從MongoDB中讀取的記錄條數。 # #skip()方法來跳過指定數量的資料,skip方法同樣接受一個數字引數作為跳過的記錄條數。 # # count統計數目 # #sort排序 # #pymongo.ASCENDING 1 # #pymongo.DESCENDING -1 # # find().sort((("age", pymongo.ASCENDING), ("high", pymongo.ASCENDING))) # #正則表示式查詢 # # find({'name': {'$regex': r'.*wei.*'}})