2017-05-24 2 views
-1

Je suis en train d'interroger les données à partir d'une collection avec un champ de plage de dates, mon document a regex recherche mis en œuvre,Impossible d'analyser: filtre: erreur MongoDB

ma requête est la suivante,

db.getCollection('_event').find([{"name":{"$regex":"2017","$options":"i"}},{},{"date.start:{$gte":"2017-03-07T18:30:00.000Z"},{"date.end:{$lt":"2017-11-16T18:30:00.000Z"}]) 

et mongo génère une erreur

Error: error: { "waitedMS" : NumberLong(0), "ok" : 0, "errmsg" : "Failed to parse: filter: [ { name: { $regex: \"2017\", $options: \"i\" } }, {}, { date.start:{$gte: \"2017-03-07T18:30:00.000Z\" }, { date.end:{$lt: \"2017-11-16T18:30:00.000Z\" } ]. 'filter' field must be of BSON type Object.", "code" : 9 }

toute aide les gars?

Répondre

1

L'argument de la méthode find doit être un document JSON/BSON et non une liste. Essayez

db.getCollection('_event').find({ 
     "name":{"$regex":"2017","$options":"i"}, 
     "date.start":{"$gte":"2017-03-07T18:30:00.000Z"}, 
     "date.end":{"$lt":"2017-11-16T18:30:00.000Z"} 
})