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)