import pymongomongo = 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'}})