2017-04-27 131 views
1

我正在尝试使用pymongo在MongoDB文档上执行聚合。我也使用PyCharm IDEfound BAD_CHARACTER在聚合查询(MongoDB/pymongo)

MongoDB version = 3.4.4 
Pymongo version = 3.4.0 
Python version = 3.5.2 

我有一个集合:PlayerDetails有看起来像这样的文件:

{'jersey': '11', 
'height': '6-1', 
'displayName': 'Maurice Williams', 
'lname': 'Williams', 
'fname': 'Maurice', 
'_id': ObjectId('590137b105488b49ace349ac'), 
'team': 'IND'} 

{'jersey': '12', 
'height': '6-4', 
'displayName': 'Tom Brady', 
'lname': 'Brady', 
'fname': 'Tom', 
'_id': ObjectId('590137b105488b49ace34551'), 
'team': 'NE'} 

我写一个Python代码通过团队加入两个文件。我有这样的下面的代码:

Database.py代码片段:

import pymongo 

class Dbase: 
    def setupConnection(self): 
     uri = "mongodb://127.0.0.1:27017" 
     Mongoclient = pymongo.MongoClient(uri) 
     Mongoclient.drop_database('MongoProject') 
     database = Mongoclient['MongoProject'] 
     return database 

App.py代码片段:

import urllib.parse 
import json 
import pymongo 
from Database import Dbase 

def main(): 
    Dbase_Obj = Dbase() 
    conn = Dbase_Obj.setupConnection() 
    collectionPlayerDetl = conn['PlayerDetails'] 


    ####select query using Join on both Player and Team details 
    collectionPlayerDetl.aggregate([ 
    { 
     $lookup:{ 
      from:'TeamDetails', 
      localField: "team", 
      foreignField: "code", 
      as:"team_descp"} 
    }, 
    { 
     $project:{ 
      "team_descp.id":0} 
    } 
    [![\]][1]][1]) 

两个疑问我在尝试,我得到$语法错误项目和$查找 - “声明预计,发现BAD_CHARACTER”

请帮助。先谢谢你。

回答

0

看起来我们只需要添加quotes-

collectionPlayerDetl.aggregate([ 
{ 
"$lookup": { 
"from":'TeamDetails', 
"localField": 'team', 
"foreignField": 'code', 
"as":'CombinedDetails' 
} 
}])