You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何清空MongoDB文档中指定对象的所有键值对

解决方案:仅清空MongoDB文档中的指定对象

要只清空Bob文档里的categories对象(注意原数据里的键是西里尔字母的сategories,如果是笔误请自行调整为英文categories),别用deleteOne(这会删掉整个文档),改用updateOne配合$set操作符就能实现,修改后的代码如下:

let users = [
  {
    name: "Bob",
    сategories: {
      eat: "20$",
      entertainment: "100$",
    },
  },
];

mongoClient.connect(function (err, client) {
  if (err) return console.log(err);
  const db = client.db("expensesdb");
  // 替换deleteOne为updateOne,通过$set清空目标对象
  db.collection("users").updateOne(
    { name: "Bob" }, // 匹配name为Bob的文档
    { $set: { сategories: {} } }, // 将сategories设为空对象
    function (err, result) {
      console.log(result);
      client.close();
    }
  );
});

关键说明:

  • updateOne:只会匹配符合条件的第一个文档并执行更新操作,不会删除整个文档
  • $set:MongoDB的字段更新操作符,用来设置指定字段的新值,这里直接把目标对象设为空{},刚好满足需求

如果你的最终需求文档里的键是category(原文档写的是сategories,可能是笔误),只需要把$set里的键名改成category即可:

{ $set: { category: {} } }

内容的提问来源于stack exchange,提问作者userName

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 09:45:50