¿Existe la posibilidad de que pueda consultar el registro de MongoDB utilizando findOneAndUpdate o findByIdAndUpdate activando el registro mediante los campos "ID" y "lang" ? Aquí está la muestra del objeto de la base de datos:
{ "id": "61842e6fb19afbc0922f5505", "locales": [ { "lang": "ru", "title": "Тестовый десерт", "description": "тестовый" }, { "lang": "lv", "title": "Testu deserts", "description": "Testu descriptions" }, { "lang": "en", "title": "Test dessert", "description": "Test description" } ] }Y así es como intento activar, y no funciona:
const filter = { _id: id, locales: { lang: lang } } const product = await Product.findOneAndUpdate(filter, { lang: { title, description, price } }, { new: true });Puede usar el operador $set así:
const product = await Product.findOneAndUpdate({ _id: "61842e6fb19afbc0922f5505", "locales.lang": "ru" }, { "$set": { "locales.$": { lang: "ru", title: "title", description: "desription", price: 23 } } })Zona de juegos de trabajo: https://mongoplayground.net/p/oBNS6wtK50g