首页 > 解决方案 > 检查 pymongo 中是否存在文档

问题描述

我正在尝试查看数据库中是否已存在文档这是我的初始代码:

myclient = pymongo.MongoClient("server link")
mydb = myclient["snkr"]
dblist = myclient.list_database_names()
collist = mydb.list_collection_names()
mycol = mydb["auth_servers"]

所以它需要一个名为 snkr 的数据库和一个名为 auth_servers 的集合,现在为了检查文档是否已经存在,我使用以下代码:

server_name = ctx.guild
    server_id = ctx.guild.id
    if mycol.count_documents({ 'ServerName':str(server_name), 'ServerID': str(server_id) }, limit = 1):
        await ctx.send(f"This server is already authorized")
    else:
        #code that inserts the value into the DB in case there isn't already one

我尝试了不同的方法:

if mydb.mycol.count_documents({ 'ServerName':str(server_name), 'ServerID': str(server_id) }, limit = 1):

if mydb.count_documents({ 'ServerName':str(server_name), 'ServerID': str(server_id) }, limit = 1):

if mydb.auth_servers.count_documents({ 'ServerName':str(server_name), 'ServerID': str(server_id) }, limit = 1):

if mydb["auth_servers"].count_documents({ 'ServerName':str(server_name), 'ServerID': str(server_id) }, limit = 1):

但它们都不起作用

标签: pythonmongodbdiscordpymongo

解决方案


解决了:

check = mycol.find({},{'ServerID':"724523958296117328"}).count()
    print(check)
    if check >= 1:
        await ctx.send(f"This server is already authorized")

推荐阅读