当前位置: 首页 > 面试题库 >

使用Mongoose从MongoDB文档中删除密钥

范翰飞
2023-03-14
问题内容

我正在使用Mongoose库通过node.js访问MongoDB

有没有办法 从文档中删除密钥 ?即不只是将值设置为null,而是将其删除?

User.findOne({}, function(err, user){
  //correctly sets the key to null... but it's still present in the document
  user.key_to_delete = null;

  // doesn't seem to have any effect
  delete user.key_to_delete;

  user.save();
});

问题答案:

在早期版本中,您需要删除node-mongodb-native驱动程序。每个模型都有一个收集对象,该对象包含node-mongodb-
native提供的所有方法。因此,您可以执行以下操作:

User.collection.update({_id: user._id}, {$unset: {field: 1 }});

从2.0版开始,您可以执行以下操作:

User.update({_id: user._id}, {$unset: {field: 1 }}, callback);

从2.4版开始,如果已经有模型实例,则可以执行以下操作:

doc.field = undefined;
doc.save(callback);


 类似资料:
  • 问题内容: 我正在尝试从猫鼬文档中存储的集合中删除一项。我的文档如下所示: 我想删除SKU为12的金鱼。我正在执行以下操作: 当我这样做时,出现错误“ TypeError:无法读取未定义的属性’等于’”。我不明白为什么。 问题答案: 您需要,然后打个电话。用于顶级文档

  • 我研究多租户web应用程序。有必要明确一些用户容器,该容器可能相当大,收集了许多文档。我需要能够删除许多文档,例如: 谢谢你。

  • 问题内容: 以上似乎不起作用。记录仍然存在。 有人可以修复吗? 问题答案: 是一系列文档。所以它没有方法 您可以分别迭代和删除数组中的每个文档。 或-由于看起来您是通过(可能是)唯一的ID查找而不是来查找文档的。

  • 在 MongoDB 中,您可以使用 remove() 方法从集合中删除文档,语法格式如下: db.collection_name.remove(     <query>,     {         justOne: <boolean>,         writeConcern: <document>     } ) 参数说明: query:可选参数,定义要删除文档的条件; justOne:可选

  • 我知道如何。。。 删除单个文档。 但我不知道如何删除Mongoose收藏中的所有文档。我想在用户单击按钮时执行此操作。我假设我需要向某个endpoint发送AJAX请求并让该endpoint进行删除,但我不知道如何在endpoint处处理删除。 在我的例子中,我有一个集合,我想在用户单击按钮时删除所有文档。 api/datetime/index.js API/datetime/datetime.c

  • 我在MongoDB中有一个收藏,如下所示: 但是,我无法找到一个查询来实现这种效果。基本上,一个tweetID会参与多个簇,因此会出现在各个簇的成员属性的多个子文档中。我想提供一个bulk$pull操作,在这里我可以删除所有集群中的所有子文档(即它们的成员属性),这些子文档与特定的tweetid匹配。 一些帮助和直觉会真的很有帮助。