Pymongo篇

1.连接

import pymongo

# 连接数据库
mongo_clien = pymongo.MongoClient(host="127.0.0.1", port=27017)
MONGO = mongo_clien['day0217']

res = list(MONGO.user_info.find({}))

print(res)

print出来的数据是:
在这里插入图片描述
但是在我们将数据查询出来的时候,会发现,res像Python中的字典,但是当我们json.dumps(res)的时候,会发现程序会报错(TypeError: Object of type ‘ObjectId’ is not JSON serializable)。在这里插入图片描述
此时我们将“_id”转成字符串看看,那么程序就成功的将数据打印了出来。
在这里插入图片描述
==但是在我们查询数据的时候,如果不使用Objectid去查询的话同样也会报错,那么现在我们需要有一个思路就是,在我们使用mongodb数据查询数据的时候,我们要使用Objectid,在我们将数据取出来的时候我们要使用str。

总结为以下:

import pymongo
from bson import ObjectId
import json

# 连接数据库
mongo_clien = pymongo.MongoClient(host="127.0.0.1", port=27017)
MONGO = mongo_clien['day0217']

res = MONGO.user_info.find_one({"id":1})

#这里在查询数据
res_obj = MONGO.user_info.find_one({"_id":ObjectId(res["_id"])})
print(res_obj)

#这里在提取数据
res["_id"] = str(res["_id"])
res_json = json.dumps(res)
print(res_json)

2.在pymongo中的基本操作

#查
res = list(MONGO.user_info.find({"$or":[{"name":"cyx"},{"id":1}]}))
# print(res)

#增
res = MONGO.user_info.insert_one({"name":"shazi","age":666})
res = MONGO.user_info.insert_many([ {"name":"zxc","age":741},{"name":"asf","age":456} ])
# print(res,res.inserted_ids)

#改
res = MONGO.user_info.update_one({"name":"shazi"},{"$set":{"name":"bushishazi","id":3}})
# print(res)

#删
res = MONGO.user_info.delete_many({"name":"shazi"})
print(res)

#print(res)

3.在pymongo中的高级操作

#高级用法
res = list(MONGO.user_info.find({}).limit(5))
res2 = list(MONGO.user_info.find({}).limit(5).skip(5))
res3 = list(MONGO.user_info.find({}).sort("id",pymongo.ASCENDING))
print(res)

4.用py的优势

在这里插入图片描述

发布了12 篇原创文章 · 获赞 7 · 访问量 168

猜你喜欢

转载自blog.csdn.net/caiyongxin_001/article/details/104748131