在python中查询mongodb

时间:2017-01-06 01:48:25

标签: python mongodb pymongo

这就是我的收藏中的典型文档的结构:

{u'_id': ObjectId('58645996fa36ac0b9f0e738d'),
 u'alias': u'loco_ono',
 u'artist': u'ONO’,
 u'date_time': datetime.datetime(2016, 12, 29, 0, 32, 22, 723000),
 u'followers': [{u'permalink': u'pschedelicsuperfuzz',
   u'plan': u'Free'},
  {u'permalink': u'd-miller',
   u'plan': u'Free'}],
 u'followers_count': 60,
 u'last_modified': u'2016/10/17 18:53:09 +0000',
 u'plan': u'Pro'}

如何迭代我的集合中的每个文档,并使用pymongo将每次迭代的以下信息写入CSV文件?

Artist   | Follower               | Count
loco_ono | pschedelicsuperfuzz    | 1
loco_ono | d-miller               | 1

到目前为止,我有这个:

import pymongo
from pymongo import MongoClient

mongo_client = MongoClient()
db = mongo_client.soundcloud_db
artist_followers = db.artist_followers

我不确定如何正确地遍历artist_followers集合,并且只检索'followers'数组中的'permalink'字段值,以便按照上述格式输出每个艺术家。

1 个答案:

答案 0 :(得分:1)

我认为您希望迭代collection.find()以从集合中检索文档,然后使用内部循环来迭代关注者。

我不理解你的计数字段,确切的格式化会有点摆弄,但这里有一个应该帮助你的片段:

for doc in artist_followers.find():
    for follower in doc["followers"]:
        print(doc["alias"], follower["permalink"])