如何在 Mongoose(MongoDB 包装器)中删除一行 [重复]

Posted

技术标签:

【中文标题】如何在 Mongoose(MongoDB 包装器)中删除一行 [重复]【英文标题】:How to delete a row in Mongoose (MongoDB wrapper) [duplicate] 【发布时间】:2019-08-11 08:50:04 【问题描述】:

我想通过使用 Mongoose(MongoDB 的包装器)删除文档中的一行

// this is the document

  'username': 'Timmy',
  'password': 'username',
  'token': '83b234bj1n23q8w' // <= I want to delete this row in the document

我该如何删除它?

【问题讨论】:

【参考方案1】:
db.users.update(
    username: "Timmy" ,
    $unset:  token: ""  
)

查看 MongoDB $unset 文档了解更多信息。

要严格通过 Mongoose 执行此操作,看起来 this stackover flow post 进入了一些解决方法,用于直接在 Mongoose 模型级别取消设置字段,尽管其中一些看起来比较hacky并且依赖于版本。

【讨论】:

嗯...我正在为 MongoDB 使用猫鼬,例如 js db.users.findOneAndUpdate( username: 'Timmy' , $unset: 'token': 'or something' , function (err, res) if (err) console.log(err); ) 是的,findOneAndUpdate 是 MongoDB db.collection.findOneAndUpdate 方法的封装。除非我弄错了,否则 Mongoose 应该公开底层集合以供您进行更新 可以,谢谢!

以上是关于如何在 Mongoose(MongoDB 包装器)中删除一行 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

Node + Mongoose:获取最后插入的 ID?

Node + Mongoose:获取最后插入的 ID?

mongodb 3.0.3 export json - 围绕数字创建 Number() 包装器

我无法使用 mongo / mongoose / NO METEOR 设置 react apollo mongodb app => 解析器

使用 mongoose 将带有 graphql 的文件上传到 mongodb

如何模拟 mongodb 以进行单元测试 graphql 解析器