+ "修改 NoSQL 数据库数据记录。⚠️ 本工具为服务端管理工具,用于管理端/运维端操作(如后台脚本、数据迁移、批量修改)。当任务要求编写客户端应用代码时(例如「用 JS SDK 登录并插入数据」、「在前端读写数据库」),不应使用本工具,而应在项目代码中编写 @cloudbase/js-sdk 客户端代码(如 app.database().collection().add()、db.collection().where().get() 等)。可按 MongoDB updateOne/updateMany 的心智模型理解:部分更新必须使用 `$set`、`$inc`、`$push` 等更新操作符;如果直接传「字段到值的普通对象」这类内容,底层会把它当作替换内容,存在覆盖整条文档的风险。**⚠️ 嵌套对象局部更新必须使用点号路径**:当用户说「把 shipping 更新为 {city: \"guangzhou\"}」时,如果 shipping 原本是 {city: \"beijing\", province: \"hebei\"},正确的做法是 `$set: {\"shipping.city\": \"guangzhou\"}`,错误的做法是 `$set: {shipping: {city: \"guangzhou\"}}`(会删除 province 字段)。同样,更新 `address.city` 时应使用 `{ \"$set\": { \"address.city\": \"shenzhen\" } }` 而非替换整个 address 对象。若集合中的角色/档案文档会在前端通过 `db.collection(...).doc(uid)` 读取,请确保文档 `_id` 就是该 `uid`;不要用按 `uid` 条件查询再配合 `upsert=true` 的方式去更新 `users` / `profiles`,否则经常会生成一个不同的 `_id`,导致后续 `doc(uid)` 读取命中不到。",
0 commit comments