使用pymongo对MongoDB数据库进行增删改查

当使用Python和 pymongo连接MongoDB时,可以执行各种操作来增加、修改、删除和查询文档。以下是常用操作:

  1. 增加数据:

    • add_one(table, data): 插入单个文档到指定的集合中,并返回插入的文档的ID。
    • add_many(table, data_list): 插入多个文档到指定的集合中,并返回插入的文档的ID列表。
    def add_one(table, data):
        db = get_db("python")
        result = db[table].insert_one(data)
        return result
    
    
    def add_many(table, data_list):
        db = get_db("python")
        result = db[table].insert_many(data_list)
        return result.inserted_ids
    
    
  2. 更新数据:

    • upd(table, condition, data): 更新满足条件的多个文档,将其字段值更新为指定的数据。
    def upd(table, condition, data):
        db = get_db("python")
        result = db[table].update_many(condition, {"$set": data})
        return result
    
  3. 删除数据:

    • delete(table, condition): 删除满足条件的多个文档,并返回删除的文档数量。
    def delete(table, condition):
        db = get_db("python")
        result = db[table].delete_many(condition)
        return result
    
  4. 查询数据:

    • find_one(table, condition): 查询满足条件的第一个文档,并返回该文档。
    • find_all(table): 查询指定集合中的所有文档,并返回文档列表。
    def find_one(table, condition):
        db = get_db("python")
        result = db[table].find_one(condition)
        return result
    def find_all(table):
        db = get_db("python")
        result = db[table].find()
        return list(result)
    

    完整代码:

import pymongo
from pymongo import MongoClient

# 创建返回链接对象
def get_db(database):
    client = MongoClient(host="localhost", port=27017)
    db = client[database]
    return db


# 增删改查
# 增加数据
def add_one(table, data):
    db = get_db("python")
    result = db[table].insert_one(data)
    return result


def add_many(table, data_list):
    db = get_db("python")
    result = db[table].insert_many(data_list)
    return result.inserted_ids


def upd(table, condition, data):
    db = get_db("python")
    result = db[table].update_many(condition, {"$set": data})
    return result

def delete(table, condition):
    db = get_db("python")
    result = db[table].delete_many(condition)
    return result


def find_one(table, condition):
    db = get_db("python")
    result = db[table].find_one(condition)
    return result
def find_all(table):
    db = get_db("python")
    result = db[table].find()
    return list(result)

if __name__ == '__main__':
    data1 = {"name": "Alice", "age": 25, "city": "New York"}
    r.inserted_id = add_one("students", data1)
    print(r.inserted_id)

    # 插入多个文档
    data2 = [
        {"name": "Bob", "age": 30, "city": "London"},
        {"name": "Charlie", "age": 35, "city": "Paris"},
    ]
    rr = add_many("students", data2)

    # 更新文档
    update_condition = {"name": "Alice"}
    update_data = {"age": 26}
    upd("students", update_condition, update_data)

    # 删除文档
    delete_condition = {"name": "Bob"}
    result = delete("students", delete_condition)
    print(result.deleted_count)

    # 查询文档
    condition = {"city": "New York"}
    result = find_one("students", condition)
    print(result)

    # 查询所有文档
    result = find_all("students")
    for doc in result:
        print(doc)

你可能感兴趣的:(Python基础,数据库,mongodb,python)