es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Es posible hacer una consulta en un objeto de fecha utilizando el conector Matlab para MongoDB?

Acabo de comenzar a usar MongoDB con Matlab (R2021b). Actualmente, estoy utilizando la clase mongoc (https://ch.mathworks.com/help/database/ug/mongoc.html) para conectarme a mi base de datos de MongoDB.

Tengo problemas para hacer consultas en la fecha. Tengo la siguiente colección:

{
“_id”: 1,
“stock”: “Stock1”,
“value”: 10,
“date”: “2010-01-01T00:00:00.000Z”
},
{
“_id”: 2,
“stock”: “Stock1”,
“value”: 20,
“date”: “2015-01-01T00:00:00.000Z”
},
{
“_id”: 3,
“stock”: “Stock1”,
“value”: 30,
“date”: “2020-01-01T00:00:00.000Z”
}

Y el resultado final debería ser el siguiente:

{
“_id”: 2,
“stock”: “Stock1”,
“value”: 20,
“date”: “2015-01-01T00:00:00.000Z”
},
{
“_id”: 3,
“stock”: “Stock1”,
“value”: 30,
“date”: “2020-01-01T00:00:00.000Z”
}

Para hacer esto, he intentado en Matlab:

conn = mongoc(‘localhost’, 27017, nombre_de_la_base_de_datos);
consulta = ‘{“date”: {“$gte”: ISODate(“2015-01-01”), “$lte”: ISODate(“2020-01-01”)}}’;
res = encontrar(conn, nombre_de_la_colección, ‘Query’, consulta);

Sin embargo, estoy obteniendo el siguiente error:

[Error del controlador de Mongo]: Obtuve un error de análisis en “S”, posición 19:
“SPECIAL_EXPECTED”.

He intentado varias formas de colocar las comillas pero ninguna ha resultado exitosa. Sin embargo, la consulta con una cadena similar en MongoDB Compass funciona. ¿Alguien ha superado este problema o el conector simplemente no puede hacer consultas en fechas? Otra solución sería almacenar la fecha en otro formato (int o float) y consultar sobre eso, pero me gustaría evitar este tipo de solución.

¡Cualquier ayuda sería muy apreciada!

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Parece que estás teniendo problemas para hacer consultas sobre fechas utilizando la clase mongoc en Matlab (R2021b). Has intentado diversas formas de colocar las comillas, pero ninguna ha sido exitosa. También has intentado hacer consultas con una cadena similar en MongoDB Compass y funciona.

    Es posible que el conector no pueda hacer consultas sobre fechas. Como alternativa, podrías almacenar la fecha en otro formato (int o float) y hacer consultas sobre eso.

    Si alguien tiene sugerencias o soluciones para este problema, sería muy apreciado.

Comments are closed.