Python 操作Mongo 增刪改查

import pymongo

mongo = pymongo.MongoClient("mongodb://127.0.0.1:27017/").nga

# 寫入一條 db.collection.insert_one({})
mongo.ttt.insert_one({"_id": 1234, "users": "[1111,2222,33,4555]"})

# 寫入多條 db.collection.insert_many([{},{}...])
mongo.ttt.insert_many([{"_id": 34, "users": "[1111,2222,33,4555]"}, {"_id": 44,"users": "[1111,333]"}])

# 更新一條 db.colleciton.update_one({查詢條件},{$修改器:{修改值}})
mongo.ttt.update_one({"_id": 1234}, {"$set": {"users": "[1111,2222,33,4555]"}})

# 更新多條  db.colleciton.update_many({查詢條件},{$修改器:{修改值}})
mongo.ttt.update_many({"_id": {"$lt": 100}}, {"$set":{"users": "[1111,2222,up]"}}) # 條件id小於100

# 查詢,1查詢字段,0不查詢字段; db.collection.find_one(查詢條件)、 db.collection.find(查詢條件)
l1 = mongo.ttt.find_one({"_id": 1234}, {"users": 1})
l1 = mongo.ttt.find({"_id": {“$lt":100}}, {"users": 1}) # 條件id小於100

# 刪除 db.colleciton.delete_one(查詢條件)、db.colleciton.delete_many(查詢條件)
mongo.ttt.delete_one({"_id": 1234})
查詢關鍵字:
(1)$and----並列查詢
db.collection.find({'$and':[{},{}...]})
(2)$or----或條件查詢
db.collection.find({'$or':[{},{}...]})
(3)$in----範圍查詢
db.collection.find({field:{'$in':['',''...]}})
(4)$all----子集查詢
db.collection.find({field:{'$all':['',''...]}})
查詢條件操作符:
(1)$lt----小於
db.collection.find({field:{'$lt':value}})
(2)$gt----大於
db.collection.find({field:{'$gt':value}})
(3)$eq----等於
db.collection.find({field:{'$eq':value}})
(4)$lte----小於等於
db.collection.find({field:{'$lte':value}})
(5)$gte----大於等於
db.collection.find({field:{'$gte':value}})
(6)$ne----不等於
db.collection.find({field:{'$ne':value}})
數據排序+跳躍+範圍:
(1)sort(filed,pymongo.ASCENDING/pymongo.DESCENDING)----對查詢結果升序/降序排序
db.collection.find({}).sort()
db.COLLECTION_NAME.find().sort({KEY:1,key2:-1}); ---- 1升序 -1降序
db.COLLECTION_NAME.find().sort([(key, -1)]).limit(20)
(2)skip(num)----對查詢結果進行跳躍取值
db.collection.find({}).skip()
(3)limit(num)----對查詢結果進行範圍截取
db.collection.find({}).limit()
(4)優先級:sort>skip>limit,與使用時的順序無關
db.collection.find({}).sort().skip().limit()
db.collection.find({}).limit().sort().skip()
db.collection.find({}).skip().sort().limit()
$修改器及$特殊用法:
(1)$set----修改某個字段的值
db.colleciton.update_one({'name':'c','age':20},{'$set':{'hobby':['swim,dump','sing']}})
(2)$unset---刪除字段
db.colleciton.update_one({'$and':[{'name':'c'},{'age':20}]},{"$unset":{'hobby':[1,2]}})
(3)$inc----引用增加(先引用 後增加)
db.colleciton.update_many({'name':{'$in':['d','e','f']}},{'$inc':{'age':2}})
(4)針對數組操作:
①$push----在Array的最後一個位置中增加一個數據
db.colleciton.update_one({'name':'b'},{'$push':{'hobby':['swim','sing']}})
②$pushAll----在Array的最後一個位置中增加多個數據
mycol.update({'name':'c'},{'$pushAll':{'hobby':['sing','scrapy']}})#實際測試無法使用,報錯:Unknown modifier: $pushAll
③$pull ----刪除Array中的指定單個元素
.update_one({'hobby':'run'},{'$pull':{'hobby':'eat'}})
④$pullAll ----刪除Array中的指定多個元素
mycol.update_many({'name':'b'},{'$pullAll':{'hobby':['swim','play']}})#實際測試每次只刪除一個元素
⑤$pop----刪除Array中的第一個或者最後一個元素 正數是倒序刪除 負數是正序刪除
db.colleciton.update_many({'hobby':'run'},{'$pop':{'hobby':1}})
⑥$----存儲當前(Array)符合條件的元素下標索引 ,只能存儲最外層的 索引位置
db.colleciton.update_many({'hobby':'run'},{'$set:{'hobby.$':'swim'}})
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章