sql >> Base de Datos >  >> NoSQL >> MongoDB

¿Es posible consultar subdocumentos directamente usando mongoose?

Sí, puede encontrar directamente el título de la publicación en el modelo de usuario. como abajo

User.find({"posts.title": "Cats are cool"}, (err, users) => {
  if(err) {
    // return error
  }
  return res.send(users)
})

Eso devolverá al usuario con todas las publicaciones, no solo el título de la publicación coincidente. Entonces, para devolver solo el título de la publicación que coincida, puede usar $ operador posicional. Me gusta esta consulta

User.find({"posts.title": "Cats are cool"},
  {username: 1, "posts.$": 1}, // add that you need to project
  (err, users) => {
    if(err) {
      // return error
    }
    return res.send(users)
})

que solo devuelven publicaciones coincidentes