将 MongoDB 集合名称存储在变量中

问题描述 投票:0回答:1

我尝试将 MongoDB 集合的名称存储在变量中并在查询中引用该名称。如果我指定不带引号的集合名称,我的查询将运行,但如果我将集合名称作为字符串放入变量中,我的查询将不会运行。

这是我正在尝试运行的。如前所述,当“x”替换为 P38 时,查询会生成结果,但不会生成当前形式的结果。

x = 'P38'

cursor = db.x.find({})

for item in cursor:
    print(item)

python database mongodb collections pymongo
1个回答
0
投票

嗯,你的 X 变量是一个字符串。它不是 MongoDB 集合对象。

当您调用 X.find() 时,您实际上是从字符串对象执行 .find() 方法,而不是从数据库集合中执行,这将导致 TypeError,因为字符串的 .find() 方法需要子字符串,而不是空字典.

如果您需要从 MongoDB 查询结果,您应该使用 MongoDB 对象,而不是将其转换为 Python 字符串对象。 Python 无法识别您这样做的意思,它将此对象视为字符串,并且不关心该字符串的值是否等于您的 MongoDB 对象类名称。

你想用这个实现什么目标?

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.