【发布时间】:2020-08-21 16:48:38
【问题描述】:
我试图从我的 MongoDB 数据库中返回两个字段,并且此查询正确地从客户端发回我的用户名和帖子:
db.users.find({'email_address': /^johnny/}, {'username': 1, 'user_posts': 1, '_id': 0});
我正在尝试将其切换到 PyMongo,以便我可以在 Python 中查询,我的查询如下所示:
regx = Regex('^{0}'.format('johnny'))
query = {'postcode': regx}, {'username': 1, 'user_posts': 1, '_id': 0}
user_list = mycol.find(query).limit(5)
失败的地方在这里:
{'username': 1, 'user_posts': 1, '_id': 0}
由于没有此过滤器,文档将被完整发送。有了这个,我从 PyMongo 收到了这个错误消息:
TypeError: filter must be an instance of dict, bson.son.SON, or any other type that inherits from collections.Mapping
我认为我的过滤器格式不正确,它不再是字典,因此尝试了各种用引号括起来的替代方法,然后是 .format() 等,但似乎无法达到神奇的组合。
【问题讨论】: