0

以下のコードは、「python test.py」としてcliで実行するpythonファイル内に存在します....

import pymongo

from pymongo import Connection


connection = Connection('localhost', 27017)

db = connection.school

data = db.students.aggregate(
 { $match :  { 'scores.type': 'homework'   },
 { $project: { id : $_id,
         name : $name,
         scores : $scores
 },
 {  $unwind:  "$scores" },
 { $group : {
     _id : "$id",
     minScore: { $min :"$scores.score" },
     maxScore: { $max: "$scores.score" }
   }
 });

for _id in data:

    print _id
    # NOTE: this can only be done ONCE...first find lowest_id then
    # remove it by uncommenting the line below...then recomment line.

    # db.students.remove(data)

このコードを実行すると、このエラーが発生します...

  File "test.py", line 11
{ $match :  { 'scores.type': 'homework'   },
  ^
SyntaxError: invalid syntax

このコードを書き直して、test.py python ファイル内から正しく動作するようにするにはどうすればよいですか?

4

1 に答える 1

1

いくつかの構文の問題があります。

まず、パイプラインは、複数のパイプライン要素を個別のパラメーターとして渡そうとする配列 (Python のリスト) です。

次に、$match などのパイプライン演算子を引用する必要があります。'$match'

ここにいくつかの良い例があるページがあります:
http://blog.pythonisito.com/2012/06/using-mongodbs-new-aggregation.html

于 2012-11-20T02:07:38.993 に答える