Pymongo如何查看文档是否已存在多个键
Pymongo how to see if document already exists with multiple keys
我无法查看文档中的多个键是否与用户提供的内容一致。用户可以在 pymongo 中创建文档,但如果具有相同键值的文档已经存在,那么我希望它更新现有文档。
这是我添加新项目的代码:
async def create_new_shop(user_id, amount, price, item):
await python_bot.insert_one({"_id": user_id, "item": item, "price": price, "amount": amount})
这是我检查它是否已经存在的代码(我只想要 _id 和项目):
async def check_item_exists(user_id, item):
check = python_bot.find_one({'$and': [{"_id": user_id},
{"item": item}]})
print(check)
return check is not None
每当打印支票时我得到:
<Future pending cb=[_chain_future.<locals>._call_check_cancel() at /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/asyncio/futures.py:384]>
感谢任何帮助。如果您需要更多信息,我可以提供。
使用启用 upsert=True
选项的 update_one
方法。
thon_bot.update_one({
"_id": user_id,
}, {
"$set": {
"item": item,
"price": price,
"amount": amount
}
}, upsert=True)
这将根据传递的 user_id
值更新,如果文档不存在则插入。
我无法查看文档中的多个键是否与用户提供的内容一致。用户可以在 pymongo 中创建文档,但如果具有相同键值的文档已经存在,那么我希望它更新现有文档。
这是我添加新项目的代码:
async def create_new_shop(user_id, amount, price, item):
await python_bot.insert_one({"_id": user_id, "item": item, "price": price, "amount": amount})
这是我检查它是否已经存在的代码(我只想要 _id 和项目):
async def check_item_exists(user_id, item):
check = python_bot.find_one({'$and': [{"_id": user_id},
{"item": item}]})
print(check)
return check is not None
每当打印支票时我得到:
<Future pending cb=[_chain_future.<locals>._call_check_cancel() at /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/asyncio/futures.py:384]>
感谢任何帮助。如果您需要更多信息,我可以提供。
使用启用 upsert=True
选项的 update_one
方法。
thon_bot.update_one({
"_id": user_id,
}, {
"$set": {
"item": item,
"price": price,
"amount": amount
}
}, upsert=True)
这将根据传递的 user_id
值更新,如果文档不存在则插入。