0

下面的代码存在于我在 cli 上以“python test.py”运行的 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 回答