2017-04-27 4 views
1

Ich versuche, eine Aggregation auf einem MongoDB-Dokument mit Pymongo durchzuführen. Ich verwende auch PyCharm IDEgefunden BAD_CHARACTER in Aggregationsabfrage (MongoDB/pymongo)

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

Ich habe eine Sammlung: Player mit einem Dokument wie folgt aussehen:

{'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'} 

ich ein Python-Code schreibe von Team zwei Dokumente zu verbinden. Ich habe diesen Code ein:

Database.py Code-Schnipsel:

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 Code-Schnipsel:

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]) 

auf beiden Abfragen ich versucht bin, bekomme ich einen Syntaxfehler auf $ Projekt und $ lookup - "Erklärung erwartet, gefunden BAD_CHARACTER"

Bitte helfen Sie. Vielen Dank im Voraus.

Antwort

0

Sieht aus wie wir müssen nur quotes- hinzufügen

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