Tengo un objeto de usuario estructurado así:
{ "id": "", "username": "", "name": "", "bio": "", "email": "", "profileImg": "", "phoneNumber": 0, "messagingPoints": 0, "funds": 0, "inventoryId": "", "lastLogin": "2022-02-23T03:27:13.535Z", "isPrivate": false, "messagesReceived": [] }
Quiero poder llegar a un punto final de parche para actualizar cualquiera de estos campos. Por ejemplo, /api/user?id=userId&name=John, debería poder tomar el campo "nombre" y establecerlo en John. /api/user/id=?id=userId&email=abc@gmail.com debe tomar el campo de correo electrónico y establecerlo en abc@gmail.com
Estoy luchando por encontrar documentos para que MongoDB logre esto, así que me pregunto si no es posible. ¿Necesito un punto final específico para cada una de estas operaciones de actualización (por ejemplo, /api/user/name?id=userId&value=John en lugar de /api/user?id=userId&name=John)?
Si es posible, ¿cómo podría lograr esto? ¡Gracias!
Puede pasar la ID de usuario en el filtro de actualización. También puede pasar datos en el cuerpo de la solicitud PUT en lugar de los parámetros de consulta.
app.put('/api/user', async (req, res) => { const { id, ...data } = req.body; // Filter out any invalid fields // Update documents where id field is equal to value of id in request body await collection.updateOne( { id }, { $set: data } ); return res.json({ data: "User updated" }) })