¿Hay alguna forma en MongoDB de obtener registros entre un rango de números?
En mi ejemplo, estoy buscando los registros que coinciden con common: 1
y estoy usando una función fake range()
para obtener solo los registros entre ese rango. En teoría, podría simplemente poner cualquier número en la función de rango y generaría los registros en ese rango.
Esto no es lo que estoy preguntando: $gte, $gt, $lte, $lt
Nota: no estoy consultando en función de los valores. Estoy consultando en función de la posición natural de los registros en el sistema de archivos en relación con todos los demás registros.
Colección de usuarios:
db.users = [{ _id: 123, name: "Bill", common: 4 }, { _id: 456, name: "Jeff", common: 2 }, { _id: 789, name: "Steve", common: 4 }, { _id: 321, name: "Elon", common: 3 }, { _id: 654, name: "Larry", common: 1 }, ]
Ejemplo no funcional: (range() no es una función real, solo se usa para dar una idea)
users.find({common: 4}).range(0, 2).then((users) => { console.log(users) })
Resultado esperado: (porque los campos comunes coinciden y los registros están entre el rango 0 y 2)
db.users = [{ _id: 123, name: "Bill", common: 4 }, { _id: 789, name: "Steve", common: 4 }, ]
Esto no da el resultado esperado exacto, pero la idea general era seleccionar registros entre dos números (por ejemplo, un rango). La forma de hacerlo es con los métodos $skip y $limit.
users.aggregate([{$skip: 1}, {$limit: 3}, {$match: {common: 4}} ]).then((users) => { console.log(users) })