通过find()将投影与查询一起用于数组字段时出现OperationFailure错误

时间:2019-07-11 20:32:35

标签: python mongodb pymongo

我试图使用find()方法来查询集合中所有具有名为“分支”的数组字段的文档,然后使用“ $”进行投影,以便仅包括数组的第一个元素。但是,它说“位置运算符(branches。$)在查询说明符中需要相应的字段”(下面显示完整消息)。

有关一些背景信息,我正在使用PyMongo 3.8.0,并已通过SSL连接到我们的数据库,到目前为止,我尝试过的任何其他查询都没有错误。

for doc in db.employees.find({'branches': {'$exists': 'true'}},
                             {'branches.$': 1}):
    pprint(doc)

我希望能够看到所有具有“分支”数组字段的文档,仅显示“ _id”字段和“分支”的第一个元素,但是我看到了:

Traceback (most recent call last):
  File "C:/Users/imehta/IdeaProjects/MongoDB/intro.py", line 51, in <module>
    {'branches.$': 1}):
  File "C:\Users\imehta\.conda\envs\MongoDB\lib\site-packages\pymongo\cursor.py", line 1225, in next
    if len(self.__data) or self._refresh():
  File "C:\Users\imehta\.conda\envs\MongoDB\lib\site-packages\pymongo\cursor.py", line 1162, in _refresh
    self.__send_message(g)
  File "C:\Users\imehta\.conda\envs\MongoDB\lib\site-packages\pymongo\cursor.py", line 1010, in __send_message
    helpers._check_command_response(first)
  File "C:\Users\imehta\.conda\envs\MongoDB\lib\site-packages\pymongo\helpers.py", line 155, in _check_command_response
    raise OperationFailure(msg % errmsg, code, response)
pymongo.errors.OperationFailure: positional operator (branches.$) requires corresponding field in query specifier

Process finished with exit code 1

0 个答案:

没有答案