Python + MongoDB笔记

Python和MongoDB笔记

由于我想使用Python来操作MongoDB,所以我做了一些调查并做了一份备忘录。预计将随时更新。

请安装Python驱动程序。

pip install pymongo dnspython

连接MongoDB

import pymongo

client = pymongo.MongoClient(
"mongodb+srv://[User]:[Password]@cluster0.8tpbm.mongodb.net/myFirstDatabase?retryWrites=true&w=majority")

DB添加、选择

如果没有测试存在,则新建创建。

db = client.test

添加收藏,选择

如果测试不存在,则创建新的。

collection = db.test

添加数据

account = {
    'account_id': 100001,
    'limit': 9000,
    'products': ['TEST1', 'TEST1-1']
}

result = collection.insert_one(account)
print(result.inserted_id)

添加多个数据

accounts = [
    {'account_id': 100002, 'limit': 9000, 'products': ['TEST2', 'TEST2-1']},
    {'account_id': 100003, 'limit': 9000, 'products': ['TEST3', 'TEST3-1']}
]

result = collection.insert_many(accounts)
print(result.inserted_ids)

获取数据

account = collection.find_one({"account_id": 123456})
print(account)

获取多个数据

accounts = collection.find({'$or': [{'account_id': 100002}, {'account_id': 100003}]},
sort=[('account_id', pymongo.ASCENDING)])
result = [v for v in accounts]
print(result)

数据更新

update = collection.update_one({"account_id": 100001}, {'$set': {'limit': 8000}})
print(update.matched_count)

多条数据更新

update = collection.update_many({'$or': [{'account_id': 100002}, {'account_id': 100003}]},
{'$set': {'limit': 9000}})
print(update.matched_count)

删除数据。

result = collection.delete_one({"account_id": 100001})
print(result.deleted_count)

删除多条数据。

result = collection.delete_many({'$or': [{'account_id': 100002}, {'account_id': 100003}]})
print(result.deleted_count)