He estado intentando actualizar un campo dentro de una matriz anidada en mi documento.
Como un esquema de ejemplo aquí ..
childSchema = new Schema ( { foo2 : String, bar2 : String, foobar : String ) };Dentro de este esquema
parentSchema = new Schema ( { foo1 : String, bar1 : String, nested : [childSchema] )};Si quisiera actualizar bar2 (childSchema) en función de la cadena coincidente con foo2, ¿cómo haría esto?
He probado lo siguiente,
parentSchema.childSchema.updateOne( { 'nested.foo2' : 'string-that-matches' }, { $set: { 'nested.$.bar2' : 'new-string-for-bar2' } } )normalmente recibo el error
TypeError: Cannot read property 'updateOne' of undefinedSolía no tener el childSchema así, solo se hizo en el parentSchema. Era más para probar separarlos.
Lo siento si formateé mal esta pregunta, y obviamente traté de hacer un conjunto de esquemas simulados de mi cosa real. Pensé que es algo más con mi consulta que la configuración.
¡Gracias!
parentSchema es suficiente para esta actualización
parentSchema.updateOne( { 'nested.foo2' : 'string-that-matches' }, { $set: { 'nested.$.bar2' : 'new-string-for-bar2' } } )