Después de semanas de esfuerzo, todavía tengo problemas para consultar el campo de fecha movie_datetime que tiene la estructura a continuación de Mlab usando NodeJS.
"movie_datetime": { "$date": "2017-01-03T16:00:00.000Z" }, "session_id": 31268Intenté lo siguiente
db.mycollection.find({ "movie_datetime" : {"gte" : { "$date" : "2013-10-01T00:00:00.000Z"}} }) db.mycollection.find({ "movie_datetime" : {"$gte": new Date("2013-10-01T00:00:00.000Z")} }) db.mycollection.find({ "movie_datetime" : {"$gte": Date("2013-10-01T00:00:00.000Z")} }) db.mycollection.find({ "movie_datetime" : {"$gte": ISODate("2013-10-01T00:00:00.000Z")} })Agradezco cualquier ayuda.
Códigos nodeJS actuales :
** Probé variaciones de comillas simples y dobles y omití .toISOString
var dateTime = '{"movie_datetime":{"$gte" : "'+new Date("2017-01-03T16:00:00.000Z").toISOString()+'"}}'; var dateTimeJson =JSON.parse(dateTimeVar); db.mycollection.find(dateTimeJson); Result for print dateTime {"movie_datetime":{"$gte" : "2017-01-03T16:00:00.000Z"}} Result for print dateTimeJson { movie_datetime: { '$gte': '2017-01-03T16:00:00.000Z' } }Versión de nodo 6.6.0
Si está utilizando la interfaz mlab, en realidad es así:
{ "createdAt": { "$gt": { "$date": "2017-11-08T20:05:45.866Z" } } }Creo que esto debería hacerlo.
db.myCollection.find({ 'movie_datetime.$date': { '$gte': new Date('2013-10-01T00:00:00.000Z') } });editar: la imagen que publicaste y el JSON que proporcionaste son diferentes. Para la foto sería -
db.myCollection.find({ 'date.$date': { '$gte': new Date('2013-10-01T00:00:00.000Z') } });revisa los documentos
Las fechas se insertan en el formato que se indica a continuación.
{"myDate": {"$date": "2010-07-20T23:23:50Z"}}