gpt4 book ai didi

python - Pymongo 仅在传递空对象时返回 id 字段

转载 作者:可可西里 更新时间:2023-11-01 10:39:03 24 4
gpt4 key购买 nike

我使用过 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,我必须在其中编写通用数据库函数。这是不允许的。

任何帮助或通过传递参数来获取所有文档的方法都将不胜感激。提前致谢

最佳答案

根据documentation这就是发生这种情况的原因:

projection (optional): a list of field names that should be returned in the result set or a dict specifying the fields to include or exclude. If projection is a list “_id” will always be returned. Use a dict to exclude fields from the result (e.g. projection={‘_id’: False}).

不过,您可以这样做:

if projection == {}:
projection = None

pymonogoMongoClient("localhost", 27017)['DB']['my_collection'].find({}, projection)

关于python - Pymongo 仅在传递空对象时返回 id 字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50485329/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com