【发布时间】:2018-11-02 06:19:46
【问题描述】:
我使用过 python 和 MongoDB。要连接到 mongo,我正在使用 python 模块 Pymongo。正如我从非常抽象和小的文档中看到的那样。似乎大多数事情都在正常的 MongoDB 集合中工作。但是有一个奇怪的部分与查找查询有关。
在 Mongo Shell 中:
db.my_collection.find({}, {})
Results Array Fields: { _id, field1, field1, field3 ..... etc}
//Notice: Returning all Fields of each Document
在 Python Shell 中:
pymonogoMongoClient("localhost", 27017)['DB']['my_collection'].find({}, {})
Results Array Fields: {_id}
Notice // Only Id is returning for all Docs
我知道通过在 find 的第二个参数中不指定空 {} 可以获得我想要的结果,但这不是我的代码设计所允许的。我正在为我的 Flask 应用程序创建一种 ORM,我必须在其中编写通用数据库函数。这是不允许的。
任何帮助或通过传递参数来获取所有文档将不胜感激。提前致谢
【问题讨论】:
-
你能发布一个示例文档吗?
-
@laike9m 它应该是可重现的,而无需查看他们的文档之一,并且它“是”可重现的。真正的问题是,当您知道字典中没有键时,为什么您只是不传递投影?而是问题,“如何有条件地添加投影?”
-
我个人会动态地制作一个参数列表,然后使用
find(*find_args)传递它们。通过这种方式,您可以根据需要动态添加find()的查询、投影和任何支持的选项。如果我正在编写 ODM,那就是。