PyMongo是MongoDB数据库的python模块
MongoDB是由C++语音编写的非关系型数据库,是一个基于分布式文件存储的开源数据库系统。
import pymongo client = pymongo.MongoClient("localhost",27017) #连接数据库 test = client["test"] #使用test数据库 students = test["students"] #使用students表格 #数据 def data_portion(): insert_data_1 = {"id":"01", "name":"小明", "age":12} insert_data_2 = {"id":"02", "name":"小红", "age":11} insert_data_3 = {"id":"03", "name":"小强", "age":12} data = [insert_data_1, insert_data_2, insert_data_3] return data #插入数据 def insert_portion(data): students.insert_many(data) #插入数据 results = students.find() #查看所以数据,返回一个生成器对象 for result in results: print(result["name"]) print("当前数据一共有: " + str(students.count()) + "条") #删除数据 def remove_portion(): print("remove------------------------------") remove_dates = students.find({"age":{"$ne":12}}) # $ne:不等于 print("匹配条数: " + str(remove_dates.count()) + "条") for remove_date in remove_dates: students.delete_one(remove_date) #查找数据 def find_portion(): print("find------------------------------") count = students.find().count() print("数据一共有: " + str(count) + "条") finds = students.find() print("分别是:") for find in finds.sort("id",pymongo.ASCENDING): print(find) #排序截取数据 def sort_skip_portion(): print("sort_skip------------------------------") #排序 : sort(按照谁排序,排序方式)。升序:ASCENDING,降序:DESCENDING #偏移 : skip(偏移数量) #限制 : limit(限制个数) results = students.find().sort("id",pymongo.ASCENDING).skip(2).limit(2) print([result["name"] for result in results]) #遍历并以列表方式储存 #更新数据 def update_portion(): # update用法官网不推荐使用 # update语句需要 $ 操作 print("update------------------------------") def first_find_portion(): # update_one的使用 find = {"id":"01"} replace = {"$set":{"id":"clear"}} # update(替换对象,替换内容) update = students.update_one(find,replace) print("匹配的条数: " + str(update.matched_count)) print("影响的条数: " + str(update.modified_count)) def second_find_portion(): # update_many的使用 find = {"id":{"$nin":["clear","01"]}} # $nin : 不在范围 replace = {"$set":{"id":"be update"}} update = students.update_many(find,replace) print("匹配的条数: " + str(update.matched_count)) print("影响的条数: " + str(update.modified_count)) first_find_portion() second_find_portion() if __name__ == "__main__": # 清空数据库数据 students.delete_many({"id":{"$ne":0}}) # 循环插入3次 for i in range(3): # 调用函数 insert_portion(data_portion()) remove_portion() sort_skip_portion() update_portion() find_portion()
下面为运行结果: