【问题标题】:How can I set a variable from a value in a field in a specific document? [PyMongo]如何从特定文档的字段中的值设置变量? [PyMongo]
【发布时间】:2021-08-15 18:11:56
【问题描述】:

this 的延续。

现在这工作正常,我遇到了另一个问题。我现在正在尝试从特定文档的字段中获取值[与运行命令的用户共享相同的 id],但是当命令运行时它 A) 从第一个文档中提取,而不是从与用户共享 id,并且 B) 只输出类似这样的内容 - {'_id': 012345678987654321, 'inv': {'inv1': 'N/A'}}。

我的代码:

if conn.mydb.mycol.count_documents({ '_id': userID }):
    inventory1 = conn.mydb.mycol.find_one({}, {'inv': {'inv1':1}, '_id' : userID})
    await ctx.send(inventory1)

我该如何处理 A) 从正确的文档中提取它和 B) 将 inv1 值设置为变量然后输出?再次感谢任何帮助。

【问题讨论】:

    标签: python mongodb discord.py pymongo


    【解决方案1】:

    find_one()的第一个参数是过滤器;第二个参数是投影(返回哪些字段)。所以一个好的开始是:

    inventory1 = conn.mydb.mycol.find_one({'_id' : userID}, {'inv': 1})
    

    【讨论】:

    • 感谢您的帮助!这能够获得正确的文档,而不仅仅是顶部的文档。我现在唯一的问题是它输出整个库存,而不仅仅是 inv1 中的变量。我怎么能只得到变量?对任何不便深表歉意。
    • 只需更改过滤器,即{'inv.inv1': 1}
    猜你喜欢
    • 1970-01-01
    • 2021-08-23
    • 2020-11-21
    • 1970-01-01
    • 2020-04-10
    • 2013-06-26
    • 2015-03-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多