Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

134
Vistas
Actualice varios documentos por valor de campo de matriz de objetos en mongoose

Aquí está mi esquema.

 Home = new Schema({ name: { type: String, required: true}, description: {type: String}, administrator: {type : mongoose.Schema.Types.ObjectId, ref: 'User', required: true}, users: [{ _id: {type : mongoose.Schema.Types.ObjectId, ref: 'User'}, email: {type: String}, name: { type: String}, status: { type: Number} }], rooms: [Room] }); module.exports = mongoose.model('Home', Home);

Si quiero encontrar un usuario específico en varios documentos, podría hacerlo

Inicio.buscar({"usuarios.email": "johnk@gmail.com"},{usuarios:1})

Esto devolvería todos los hogares con users.email = johnk@gmail.com

Pero el campo del usuario es una matriz.

 "users" : [ { "status" : 0, "name" : "Yaknow", "email" : "yaknow@gmai.com", "_id" : ObjectId("5875a42ea469f40c684de385") }, { "status" : 1, "name" : "johnk", "email" : "johnk@gmail.com", "_id" : ObjectId("586e31c6ce07af6f891f80fd") } ]

(esto es solo de una casa, si hay muchas casas, habrá muchas matrices como esta) Entonces, la consulta anterior devolverá cada matriz de usuario de cada casa en la que el usuario tiene correo electrónico. Mi pregunta es, ¿cómo actualizo todas las instancias? de ese JohnK en JohnKirtster? Usar esto actualizaría a cada usuario en el nombre de la matriz a JohnKirster

Home.update(consulta, {users.name: "JohnKirster"})

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Puede usar el operador posicional mongodb $ configurando multi:true

 Home.update( {"users.name": "johnk"}, //query, you can also query for email {$set: {"users.$.name": "JohnKirster"}}, {"multi": true} //for multiple documents )
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda