Consulta en MongoDB que la búsqueda es verdadera; problemas de sintaxis de consulta

Alejandro Duria

Esta es probablemente una pregunta vergonzosa, pero estoy intentando representar una búsqueda de usuario basada tanto en la búsqueda de ubicación como en la fecha. Nuestro objeto de perfil está estructurado de la siguiente manera;

availability: {
    monday: { type: Boolean, default: false },
    tuesday: { type: Boolean, default: false },
    wednesday: { type: Boolean, default: false },
    thursday: { type: Boolean, default: false },
    friday: { type: Boolean, default: false },
    saturday: { type: Boolean, default: false },
    sunday: { type: Boolean, default: false },
  }

Aquí está mi controlador;

exports.findUsersByDay = asyncHandler(async (req, res) => {
  const search = req.params.search;

  try {
    const profileList = await Profile.find({
      availability: { $in: search }
    });

    if (profileList.length > 0) {
      return res.status(200).json({ profiles: profileList });
    } else {
      return res.status(404).json({ message: "No Profiles Found" });
    }
  } catch (error) {
    return res.status(500).json({ message: error });
  }
})

¿Cómo puedo consultar si el objeto de perfil tiene una de las fechas (o varias si se transmite como una matriz) a verdadera?

Tushar Shahi

Puede crear una consulta dinámica para esto. Obtenga todos los días que desee y utilícelo junto con $ y :

let findQuery = { $and : [ ]};
let search = ['monday','thursday']; search.forEach((a)=>{
  let aName = `availability.${a}` 
findQuery['$and'].push({
[aName] : true
})});

const profileList = await Profile.find(findQuery);

Creo que se podría hacer algo similar usando $ where también, pero el rendimiento se verá afectado.

Este artículo se recopila de Internet, indique la fuente cuando se vuelva a imprimir.

En caso de infracción, por favor [email protected] Eliminar

Editado en
0

Déjame decir algunas palabras

0Comentarios
Iniciar sesiónRevisión de participación posterior

Artículos relacionados

Problemas con la consulta de búsqueda

Consulta mongodb, que devuelve documentos que no tienen un campo especificado en la consulta de búsqueda.

Convierta la consulta de MongoDB en la sintaxis Spring MongoDB

Índices de MongoDB en subdocumentos que no se utilizan según la sintaxis de la consulta

Consulta de subconjunto de palabras en la búsqueda de texto completo de MongoDB Atlas

La consulta de búsqueda de MongoDB devuelve demasiados documentos

La consulta de búsqueda de mongodb no funciona

Consulta mongodb que combina búsqueda de $ text con $ regex

Cómo usar el nombre de alias en la consulta de búsqueda en MongoDB

Cómo usar el nombre de alias en la consulta de búsqueda en MongoDB

error de sintaxis en la consulta de actualización de mysql mi sintaxis es correcta

error de sintaxis en la consulta de actualización de mysql mi sintaxis es correcta

MongoDB: búsqueda cercana + en consulta de agregación

Cómo activar la consulta de búsqueda en subdocumentos en MongoDB

Consulta de búsqueda de MongoDB maxTimeMS

¿Cómo filtrar la consulta de búsqueda en appengine?

incluir campos personalizados en la consulta de búsqueda

La consulta de búsqueda en Android Studio no funciona correctamente

discord-player atascado en la consulta de búsqueda

hacer la consulta de búsqueda en adonisjs lucid

La consulta de búsqueda no funcionará en heroku

Ignorar nulo en la consulta de búsqueda usando udt

Segundo como en la consulta de búsqueda

La consulta de búsqueda no funcionará en heroku

Consulta de filtro: no nulo en la búsqueda elástica

Consulta de búsqueda en la columna jsonb

Regexp de búsqueda anticipada negativa no funciona en la consulta ES dsl

Búsqueda de Azure: proporcione un perfil de puntuación en la consulta de búsqueda

Consulta de búsqueda de Mongoose con error de devolución de datos en Azure MongoDB después de que los resultados de la consulta alcanzaran más de 500