pymongo基础

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()

下面为运行结果:

pymongo基础

pymongo基础

上一篇:xxxxxxx


下一篇:MongoDB 索引