Soy nuevo en MongoDB y Mongoose.
Estoy practicando algunas de las consultas con el siguiente esquema y modelo:
const articleSchema = mongoose.Schema({ title: String, content: String, }); const Article = mongoose.model('article', articleSchema);Digamos que agregué los siguientes dos documentos:
{title: "One", content: "Content One"} {title: "LongerTitleThanOne", content: "Content Two"} ¿Qué consulta puedo usar para encontrar todos los documentos donde la longitud del "título" es mayor que 3?
Intenté la siguiente consulta pero solo funciona con números:
Article.find({title:{$gt:3}}, (err,foundItems)=>{});Muchas gracias de antemano por su ayuda aquí.
También puede utilizar la consulta de agregación para lograr el resultado.
Article.aggregate( [ { '$project': { 'titleLength': { '$strLenCP': '$name' } } }, { '$match': { 'titleLength': { '$gt': 2 } } } ])Esta no es la mejor manera de hacer esto, pero funciona.
Te aconsejo que no uses esto en producción.
Primero obtenga todos sus datos de su base de datos y guárdelos en una variable, luego use la función de filtro de JavaScript para realizar su tarea
Por ejemplo
let data = model.find({}); let filter_data = data.filter(data.title.length>8);