Quiero actualizar los datos en un documento existente y no crear otro documento json en la base de datos. Pero no se modifica el registro que muestra { n: 0, nModified: 0, ok: 1 } por favor, ayúdenme, gracias de antemano
este es mi código:
const userUpdatedPassword = await UserPreferred.updateOne({_id: userPreferredExists._id}, { $push: { languages: req.body.languages, storeType: req.body.storeType, intrestedIn: req.body.intrestedIn }}) }Estoy pasando estos datos en cartero:
{ "languages":["korean,"Hindi"], "storeType":["gas station"], "intrestedIn":["sarees"] }Tengo un documento json en mi base de datos.
{ "_id" : ObjectId("60e968581871a42ab43a2345"), "languages" : [ "English" ], "intrestedIn" : [ "clothing", "foot wear", "watches", ], "storeType" : [ "department stores", "Medical stores" ] }Quiero en este fromat:-
{ "_id" : ObjectId("60e968581871a42ab43a2345"), "languages" : [ "English", "korean, "Hindi" ], "intrestedIn" : [ "clothing", "foot wear", "watches", "sarees" ], "storeType" : [ "department stores", "Medical stores", "gas station" ] }Puede usar la siguiente consulta como su requisito, lo probé y probé en mi local, una cosa que olvidó usar la matriz de idioma de comillas de cierre para coreano
const userUpdatedPassword = await UserPreferred.updateOne({_id: userPreferredExists._id}, { $push: { languages: { $each: req.body.languages }, storeType: { $each: req.body.storeType }, intrestedIn: { $each: req.body.intrestedIn } } }) Pero este código escribirá duplicados en la matriz, por lo que si no desea insertar duplicados en la matriz, puede usar $addToSet en lugar de $push , como sigue
const userUpdatedPassword = await UserPreferred.updateOne({_id: userPreferredExists._id}, { $addToSet: { languages: { $each: req.body.languages }, storeType: { $each: req.body.storeType }, intrestedIn: { $each: req.body.intrestedIn } } })