我试图使用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