我有一个mongo集合,数据结构如下
content: {'description': { 'text': [{'_date': '2019-05-21','_sectionId': 'a13a','_objectId: 'f637cee'},
{'_date': '2019-05-21','_objectId': '8b2ed183', '_source: 'f637cee'},
{ etc....}
{'_date': '2019-05-21','_sectionId': 'a13a','_objectId: 'XXXcee'}
},
'client' : {.....},
}
我正在寻找通过以下方式查询集合以获得元组列表的方法:给定节Id,我想获得相应的"objectId">
在这种情况下,结果将是:
('a13a','f637cee'), ('a13a','XXXcee')
我开始做这样的事情:
import pymongo
myclient = pymongo.MongoClient(mongoconnection)
print('databases names:')
myclient.list_database_names()
# getting the collection:
mydb = myclient["clients"]
query = {'content.description.text._sectionId': 'a13a'}
cur = mydb.find(query)
但是我不知道如何从光标中提取信息。
有什么帮助吗?
注意,信息可能嵌套在不同的位置,即在"之前有更多的节点;内容";这可能会有所不同。非常感谢
使用find()
的第二个参数来获取所需字段。
例如:
query = {'content.description.text._sectionId': 'a13a'}
cur = mydb.find(query, { "_id": 0, "_sectionId": 1, "_objectId": 1 })
print([tuple(i.values()) for i in cur])