一尘不染

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

node.js

我正在使用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();
});

阅读 242

收藏
2020-07-07

共1个答案

一尘不染

在早期版本中,您需要删除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);
2020-07-07