2017-08-26 11 views
0

と記事の数をカウントします。この時点で重複はOKです。作者の結合は名前の変更、アクセント付きの名前の異なるスペルなどによって処理の別の層です。MongoBDは、私はMongoDBのは、以下のように設定している著者

私は、次のような出力が欲しい:

'Author 1': Count of documents mentioning author 1, 
      ... 
'Author N': Count of documents mentioning author n, 

下記の試みは空のリストが得られます

collection.aggregate([{"$group":{"_id":'AU',"count":{"$sum":1}}}]) 

を私は$AUは、文字列のリストであるため、エラーがあるかもしれないと思ったが、 db.collection.distinct('AU')は、リストのリストではなく、文字列のリストを返します。

SQLスタイルの構文では、私は次のようにforループに入れて、著者のリストを繰り返し処理します。私はそれをどのようにMongoに書くのか分かりません。

SELECT * from collection WHERE author IN AUTHOR_LIST 

答えて

2

あなたは$unwinddocs)第一著者によると、その後$groupそれをあなたが今やっているよう収集することができます

pipeline = [{"$unwind": "$AU"}, 
      {"$group": {"_id": "$AU", "count": {"$sum": 1}}}] 
db.collection.aggregate(pipeline) 

あなたはpymongo aggregation framework docsの例を持っています。

関連する問題