欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Pymongo使用

程序员文章站 2022-05-28 17:06:16
...

1.$修改器 :
$set 简单粗暴 {name:value} dict["name"]=value

$unset 简单粗暴的删除字段 {$unset:{name:1}} del dict["name"]
db.user_info.updateOne({age:200},{$unset:{age:1}})

$inc 引用增加
db.user_info.updateMany({},{$inc:{age:1}})

array操作
$push 在array中追加一个新的元素 [].append(item)
db.user_info.updateOne({name:"200wansui"},{$push:{hobby:10}})

$pull 在array中删除一个的元素 [].remove(item) [].pop(-1)
db.user_info.updateOne({name:"200wansui"},{$pull:{hobby:0}})

$pop 不含索引 -1 从前往后 1 从后往前
db.user_info.updateOne({name:"200wansui"},{$pop:{hobby:1}})

2.$ 字符
db.user_info.updateOne({hobby:6},{$set:{"hobby.$":"六"}})
保存符合索引条件数据的下标

3.Object 字典操作
db.user_info.updateOne({name:"200wansui"},{$inc:{"info.tizhong":-5}})
db.user_info.updateOne({name:"200wansui"},{$set:{"info.long":12.5}})

4.array + Object
db.user_info.updateOne({"hobby.shengao":150},{$set:{"hobby.$.long":14}})

5.limit
db.user_info.find({}).limit(5)
选取数据从当前位置选择5个

6.skip 跳过
db.user_info.find({}).skip(2)
从0开始跳过2条数据为当前位置

7.sort
db.user_info.find({}).sort({ id:-1 })
根据ID进行排序 -1倒叙 1正序

8.limit+skip+sort
db.user_info.find({}).limit(5).skip(10)
db.user_info.find({}).limit(c).skip((p-1)*c)

db.user_info.find({}).limit(5).skip(5).sort({ id:-1 })

优先级最高的是 sort
其次优先为 skip
最低优先级 limit

 

9.pymongo

安装pymongo第三方模块

 建立连接

import pymongo
from bson import ObjectId
import json
mongo_client= pymongo.MongoClient(host='127.0.0.1',port=27017)
Mongo =mongo_client['db1']

3 使用pymongo实现数据的增删改查

   数据增加

  

Mongo.user_info.insert_one({'id':2,'name':'zjh','hobby':[1,2,3,4]})
Mongo.user_info.insert_one({'id':1,"name":'zxd','age':23})
res = Mongo.user_info.insert_many([{'name':'pymongo','age':666},{'name':'pymongo','age':666}])

  

 数据查询

ret=Mongo.user_info.find_one({‘id’:3})
print(ret)
ret=Mongo.user_info.find({})
print(list(ret))

res=Mongo.user_info.find({'name':1}).limit(5).skip(0).sort('id',pymongo.DESCENDING)

 数据更改

Mongo.user_info.update_one({'id':1},{"$set":{'age':18}})

直接更改字典
ret = Mongo.user_info.find_one({'id':16})
# print(ret)
ret.get('info')['shengao']=188
ret.get('info')['tizhong']=135
Mongo.user_info.update_one({'_id':ret['_id']},{'$set':ret})
res = Mongo.user_info.find_one({'id':16})
print(res)

更改字典内部字典
# Mongo.user_info.insert_one({'id':12,'info':{'k1':'v1'}})
# Mongo.user_info.update_one({'id':12},{"$set":{'info':{'k1':66}}})


更改列表中的字典
# Mongo.user_info.insert_one({'id':5,'hobby':[1,23,{'shengao':179,'long':12}]})
# res=Mongo.user_info.update_one({'hobby.shengao':179},{'$set':{'hobby.$.long':13}})
# # print(res)
# Mongo.user_info.update_one({'id':5},{'$push':{'hobby':10}})


 数据删除

Mongo.user_info.delete_one({'id':1})
Mongo.user_info.delete_many({'name':1})

  序列化与反序列化

# ret =Mongo.user_info.find_one({'name':'zjh'})
# ret['_id'] = str(ret['_id'])
# res=json.dumps(ret)
# ress = json.loads(res)
# ress["_id"]=ObjectId(ress["_id"])
# ret=Mongo.user_info.find_one({'_id':ress["_id"]})
# print(ret)