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'
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';
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.
#2
Menudo infierno el Mongo DBExMongoDBcólico el 20 oct 2020 |
Si para hacer una consulta simple como es un Between entre fechas hay hacer todo eso, imagínate queries con varios Joins, agrupaciones , subconsultas, etc. |
#1
Gracias por el postOscar el 3 abr 2019 |
Me ha servido de mucha ayuda. |