Necesito anotar una categoría y su costo en objeto de categoría. Ahora, en mi ejemplo de código, estoy agregando los productos: categoría de $50 al usuario. Después de la ejecución, se muestra 'categories': { products: '50$' } en la consola. Pero si agrega productos: 1000 $ nuevamente, se sobrescribirá y generará 'categorías': {productos: '1000 $'}. Y necesito mostrar 'categorías': { productos: '$50' , productos: '$1000' }. ¿Cómo se puede implementar esto?
mongoClient.connect(function (err, client) { if (err) return console.log(err); const db = client.db("db"); const col = db.collection("coll"); col.findOneAndUpdate( { name: "User1", }, { $set: { "сategories.products": "50$", }, }, function (err, result) { console.log(result); client.close(); } ); });En vez de
$set: { "сategories.products": "50$" }usar
$addToSet: { сategories: { products: "1000$" } }Deberías cambiar el nombre de la clave como products_2
Bueno, si lo entendí correctamente, tiene un objeto como categories:{products:$50} pero desea que cada vez que publique un nuevo precio, se agregue al objeto y no lo sobrescriba.
Creo que tampoco es posible cada vez que crea un nuevo objeto como {products1:$50, products2:$1000} y configura su campo de categorías para que sea igual a este nuevo objeto
O
debe hacer su modelo como categories:{products:[]} . Entonces, puede presionar el nuevo precio en la matriz.