Tenemos una colección MongoDB llamada courses
Tenemos dos campos begin, end
Queremos encontrar los registros en los que una fecha 1 de Marzo de 2018 está entre begin y end
En SQL la consulta sería...
SELECT * FROM courses WHERE begin <= '2018-03-01' AND end >= '2018-03-01'
(esto encontraría los cursos que se estaban impartiendo el 1 de Marzo de 2018)
La consulta en MongoDB sería así:
db.getCollection('courses').find({"begin":{"$lte":ISODate("2018-03-01 00:00:00.000Z")},"end":{"$gte":ISODate("2018-03-01 00:00:00.000Z")}})
Y puesto un poco más bonito...
db.getCollection('courses').find({
"begin" : {"$lte": ISODate("2018-03-01 00:00:00.000Z")},
"end" : {"$gte": ISODate("2018-03-01 00:00:00.000Z")}
})
Si además quieres hacer esta consulta desde PHP...
$db = 'nombreBD';
$theDate = '2018-03-01';
$resultado = $db->courses->find(
array(
'begin'=> array('$lte'=> new MongoDate(strtotime($theDate))),
'end' => array('$gte'=> new MongoDate(strtotime($theDate)))
),
array(
'begin' => 1,
'end' => 1,
'_id' => 0
)
);
Esta web se reserva el derecho de suprimir, por cualquier razón y sin previo aviso, cualquier contenido generado en los espacios de participación en caso de que los mensajes incluyan insultos, mensajes racistas, sexistas... Tampoco se permitirán los ataques personales ni los comentarios que insistan en boicotear la labor informativa de la web, ni todos aquellos mensajes no relacionados con la noticia que se esté comentando. De no respetarse estas mínimas normas de participación este medio se verá obligado a prescindir de este foro, lamentándolo sinceramente por todos cuantos intervienen y hacen en todo momento un uso absolutamente cívico y respetuoso de la libertad de expresión.
No hay opiniones. Sé el primero en escribir.