Jump to content
Changes to the Jaspersoft community edition download ×

MongoDB Aggregation Query JSON Parse error


gaston.m

Recommended Posts

I'm trying to execute an aggregsation query that works well in  mongoshell but produces errors in Jaspersoft Studio:

com.mongodb.util.JSONParseException: { runCommand: { aggregate : 'customers',                pipeline : [ { $match     : { countryCode: { $nin: ["ES"] }}},                             { $addFields : { cantidad_solicitudes: { $size: "$loanApplications"},                                              primera_solicitud   : { $min : "$loanApplications.created" },                                              ultima_solicitud    : { $max : "$loanApplications.created" },                                               brands              : { $reduce : { input: '$loanApplications',                                                                                  initialValue : '',                                                                                  in : { $concat: [ "$$value",                                                                                                    { $cond: [ { $eq: ["$$value", "" ] }, "", " " ] },                                                                                                    { $cond: [ { $eq: [ { $indexOfCP: ["$$value","$$this.brand"] }, -1 ] },                                                                                                               "$$this.brand",""                                                                                                              ]                                                                                                    }                                                                                                  ]                                                                                       }                                                                                }                                                                    }                                            }                             },                             { $addFields : { dias_entre_primera_y_ultima_solicitud: { $floor: { $divide: [ { $subtract: [ "$ultima_solicitud",                                                                                                                           "$primera_solicitud" ]                                                                                                            }, 1000 ]                                                                                               }                                                                                     },                                             }                             },                             { $unwind   : "$phones" },                             { $addFields: { telefono: {  $concat: [ {$ifNull: [ "$phones.area", "" ]},                                                                     {$ifNull: [ "$phones.number", "NONUMBER" ]},                                                                     " (",                                                                     {$ifNull: [ "$countryCode", "NOCOUNTRY" ]},                                                                     ")",                                                                   ]                                                       }                                           }                             },                             { $match    : { "telefono": { $nin: [ "NO PHONE (ES)", "", " (ES)",                                                                   "1142424242 (AR)", "1151794427 (AR)",                                                                   "1131380799 (AR)", "1160052758 (AR)",                                                                   "1126890205 (AR)", "2804645398 (AR)",                                                                   "1162989871 (AR)", "1155821709 (AR)",                                                                  ]                                                         }                                           }                             },                             { $project  : { _id:        0,                                             fiscalId:   1,                                             countryCode:1,                                             nationalId: 1,                                             gender:     1,                                             birthdate:  1,                                             lastName:   1,                                             firstName:  1,                                             email:      1,                                             telefono:   1,                                             cantidad_solicitudes:1,                                             primera_solicitud:   1,                                             ultima_solicitud:    1,                                              dias_entre_primera_y_ultima_solicitud:1,                                             brands:     1                                           }                              },                             { $group:     { _id:   "$telefono",                                             count: { $sum:1 },                                              data:  { $push: { nationalId:  "$nationalId",                                                                fiscalId:    "$fiscalId",                                                               countryCode: "$countryCode",                                                               gender:      "$gender",                                                               birthdate:   "$birthdate",                                                               lastName:    "$lastName",                                                                firstName:   "$firstName",                                                               email:       "$email",                                                               cantidad_solicitudes:"$cantidad_solicitudes",                                                               primera_solicitud:   "$primera_solicitud",                                                               ultima_solicitud:    "$ultima_solicitud",                                                                dias_entre_primera_y_ultima_solicitud:"$dias_entre_primera_y_ultima_solicitud",                                                               brands:      "$brands"                                                             }                                                     }                                           }                             },                             { $match:     { count: {$gt: 1 }}},                             { $unwind:    "$data" },                             { $project:   { _id:   0,                                             telefono:    "$_id",                                              cantidad_clientes: "$count",                                              nationalId:  "$data.nationalId",                                              fiscalId:    "$data.fiscalId",                                             countryCode: "$data.countryCode",                                             gender:      "$data.gender",                                             birthdate:   "$data.birthdate",                                             lastName:    "$data.lastName",                                              firstName:   "$data.firstName",                                             email:       "$data.email",                                             cantidad_solicitudes:"$data.cantidad_solicitudes",                                             primera_solicitud:   "$data.primera_solicitud",                                             ultima_solicitud:    "$data.ultima_solicitud",                                              dias_entre_primera_y_ultima_solicitud:"$data.dias_entre_primera_y_ultima_solicitud",                                             brands:      "$data.brands"                                           }                             }                           ],                "cursor":  {}              }}                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           ^at com.mongodb.util.JSONParser.parse(JSON.java:231)at com.mongodb.util.JSONParser.parseArray(JSON.java:614)at com.mongodb.util.JSONParser.parse(JSON.java:224)at com.mongodb.util.JSONParser.parseObject(JSON.java:264)at com.mongodb.util.JSONParser.parse(JSON.java:228)at com.mongodb.util.JSONParser.parseArray(JSON.java:614)at com.mongodb.util.JSONParser.parse(JSON.java:224)at com.mongodb.util.JSONParser.parseObject(JSON.java:264)at com.mongodb.util.JSONParser.parse(JSON.java:228)at com.mongodb.util.JSONParser.parseObject(JSON.java:264)at com.mongodb.util.JSONParser.parse(JSON.java:228)at com.mongodb.util.JSONParser.parseObject(JSON.java:264)at com.mongodb.util.JSONParser.parse(JSON.java:228)at com.mongodb.util.JSONParser.parseObject(JSON.java:264)at com.mongodb.util.JSONParser.parse(JSON.java:228)at com.mongodb.util.JSONParser.parseObject(JSON.java:264)at com.mongodb.util.JSONParser.parse(JSON.java:228)at com.mongodb.util.JSONParser.parseArray(JSON.java:614)at com.mongodb.util.JSONParser.parse(JSON.java:224)at com.mongodb.util.JSONParser.parseObject(JSON.java:264)at com.mongodb.util.JSONParser.parse(JSON.java:228)at com.mongodb.util.JSONParser.parseObject(JSON.java:264)at com.mongodb.util.JSONParser.parse(JSON.java:228)at com.mongodb.util.JSONParser.parse(JSON.java:156)at com.mongodb.util.JSON.parse(JSON.java:98)at com.mongodb.util.JSON.parse(JSON.java:79)at com.jaspersoft.mongodb.query.MongoDbQueryWrapper.processQuery(MongoDbQueryWrapper.java:105)at com.jaspersoft.mongodb.query.MongoDbQueryWrapper.<init>(MongoDbQueryWrapper.java:93)at com.jaspersoft.mongodb.MongoDbFieldsProvider.getFields(MongoDbFieldsProvider.java:81)at com.jaspersoft.studio.data.mongodb.MongoDbFieldsProvider.getFields(MongoDbFieldsProvider.java:38)at com.jaspersoft.studio.data.mongodb.MongoDbDataAdapterDescriptor.getFields(MongoDbDataAdapterDescriptor.java:64)at com.jaspersoft.studio.data.ui.SimpleQueryWizardDataEditorComposite.readFields(SimpleQueryWizardDataEditorComposite.java:248)at com.jaspersoft.studio.wizards.datasource.StaticWizardDataSourcePage.run(StaticWizardDataSourcePage.java:389)at com.jaspersoft.studio.wizards.JSSWizardRunnablePage$1.run(JSSWizardRunnablePage.java:73)at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:119)[/code]

Any advice? 

 

 

Link to comment
Share on other sites

  • Replies 0
  • Created
  • Last Reply

Top Posters In This Topic

Popular Days

Top Posters In This Topic

Popular Days

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...