Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

433
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!