我尝试将 MongoDB 集合的名称存储在变量中并在查询中引用该名称。如果我指定不带引号的集合名称,我的查询将运行,但如果我将集合名称作为字符串放入变量中,我的查询将不会运行。
这是我正在尝试运行的。如前所述,当“x”替换为 P38 时,查询会生成结果,但不会生成当前形式的结果。
x = 'P38'
cursor = db.x.find({})
for item in cursor:
print(item)
嗯,你的 X 变量是一个字符串。它不是 MongoDB 集合对象。
当您调用 X.find() 时,您实际上是从字符串对象执行 .find() 方法,而不是从数据库集合中执行,这将导致 TypeError,因为字符串的 .find() 方法需要子字符串,而不是空字典.
如果您需要从 MongoDB 查询结果,您应该使用 MongoDB 对象,而不是将其转换为 Python 字符串对象。 Python 无法识别您这样做的意思,它将此对象视为字符串,并且不关心该字符串的值是否等于您的 MongoDB 对象类名称。
你想用这个实现什么目标?