Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

429
Visualizações
Guardar una matriz en Mongoose save

Necesito ayuda con arreglos en Mongoose. Así es como se ve mi esquema: -

 const alertsSchema = new mongoose.Schema({ Alert_Date: String, Alert_StartTime: String, Alert_EndTime: String, Alert_RuleName: String, Alert_RuleId: String, Alert_EntryNumber: String, Alert_AlertId: String, Alert_Description: String, Alert_TriggerTime: String, Alert_Activities: [{ Alert_Activities_ActivityType: String, Alert_Activities_ActivityTime: String, Alert_Activities_AreaName: String, Alert_Activities_AreaType: String, Alert_Activities_Position: Array, Alert_Activities_Duration: Number, Alert_Activities_SecondVesselId: String, Alert_Activities_SecondVesselName: String, Alert_Activities_SecondVesselClassCalc: String, Alert_Activities_SecondVesselSize: String, Alert_Activities_SecondVesselMMSI: String, Alert_Activities_SecondVesselIMO: String, }], })

Alert_Activities es una matriz que proviene de mi aplicación js de nodo ascendente. Implementé una funcionalidad de fswatch y tan pronto como cambia un archivo en particular, busco guardar el registro en mi colección. El archivo ascendente siempre contendrá una matriz. Generalmente en un promedio de alrededor de 4 a 5 registros. En resumen, Alert_Activities estará allí para cada elemento de la matriz.

Estoy ejecutando un bucle for y luego intento guardar los cuatro elementos de una sola vez en mi colección. myObject es la lectura completa del archivo ascendente usando fs.read

 for(i=0; i<myObject.length; i++){ var newAlertData = new alertRegister({ Alert_Date: date1, Alert_StartTime: startNotificationDate, Alert_EndTime: endNotificationDate, Alert_RuleName: myObject[i].ruleName, Alert_RuleId: myObject[i].ruleId, Alert_EntryNumber: myObject[i].entryNumber, Alert_AlertId: myObject[i].alertId, Alert_Description: myObject[i].description, Alert_TriggerTime: myObject[i].triggerTime, // Alert_Activities: myObject[i].activities, }); newAlertData.save(function(err,data1){ if(err){ console.log(err) } else { console.log("data saved") } })

Las Alert_Activities obviamente no se guardarán. ¿Cuál es la forma correcta de hacer esto en Mongoose?

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Si está tratando con Mongoose Documents, no con objetos javascript .lean() , probablemente necesitará marcar los campos de matriz como modificados a través markModified y solo luego usar .save() .

Además, directModifiedPaths podría ayudarlo a verificar qué campos se han modificado en el documento.

Me di cuenta de que sus Alert_Activities son en realidad una matriz de objetos, así que asegúrese de que los documentos de mangosta resultantes, que está tratando de .save() realmente satisfagan todas las reglas de validación.

Si los cambios en algunos campos se guardan con éxito pero los otros no, entonces definitivamente hay algo mal con los nombres de los campos o la validación. Y el DB/mangoose no le provoca un error, porque el documento ya se ha guardado, incluso en particular.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda