在python中使用pymongo连接mongodb数据库.
基本代码如下:
from pymongo import MongoClient client = MongoClient(‘127.0.0.1‘, 27017) # mongodb的地址 db_name = ‘myfirstmongo‘ # 数据库的名字 db = client[db_name] # 现在db就是这个数据库了 collection = db[‘testone‘] # ‘testone‘是集合的名字,现在collection就是我们要用的集合了
查询一条数据和简单的分页操作:
import json from bson import json_util as jsonb def get_data_by_key(key): item = collection.find({"key":key}) # 直接用集合查询,find是mongo的方法 # print item # 查询返回的item是一个对象,打印出来是<pymongo.cursor.Cursor object at 0x7f5d9bbc6f50> info = jsonb.dumps(item) # 使用bjson将对象转换成可读的形式,现在的info是str类型 data = json.loads(info) # 使用json将字符串转换成python的相应类型,这里data是list列表 return data def get_page_data(page): page_len = 20 # page_len是一页的长度,也可以作为参数传进来 skp = (int(page)-1)*page_len # skip是为了只查询某一页的,跳过之前的数据 item = collection.find().skip(skp).limit(page_len) # 从skp开始,查询page_len条数据 info = jsonb.dumps(item) # 处理数据 data = json.loads(info) # 处理数据 return data
get_data_by_key是通过某一个条件查询,也可以多条件查询.要注意key的数据类型.增删改等操作与上面过程类似,只需修改collection对应的操作函数.删除数据:collection.find_one_and_delete({‘key‘:key}),或者collection.remove({‘key‘:key})谨慎使用remove(),她的括号里为空时,会删掉集合里面的所有数据;增加数据:collection.insert({‘key‘:‘123‘,‘msg‘:‘test‘}),也可插入多条,将多条数据放入列表中,将列表传入insert()即可;更新数据:collection.update({‘key‘:‘123‘},{‘msg‘:‘new‘},True,True),update参数含义:第一个是查询参数,第二个是要更新的内容,第三个是决定在没有查到该条数据时是否创建,第四个是查询到多条数据时是否都要更改;更新数据还可以使用修改器,这里不做记录了.
时间: 2024-10-03 22:32:31