在express和mongodb中,我希望按id删除文档

db.collection('quotes').findOneAndDelete({name: req.body.name}, (err, result) => {
    if (err) return res.send(500, err)
  })

var ObjectId = require('mongodb').ObjectId;
  var collection = db.collection('quotes');
  collection.remove({_id: new ObjectId(req.body.id)}, function(err, result) {
      if (err) {
          console.log(err);
      } else {
          res.send('A darth vadar quote got deleted')
      }
  });

  var mongodb = require('mongodb');
  db.collection('quotes', function(err, collection) {
    collection.deleteOne({_id: new mongodb.ObjectID(req.body.id)});
  });

三种功能的区别?

推荐答案

简而言之:

  • findOneAndDelete()在删除后返回已删除的文档(以防删除操作后需要其内容);
  • deleteOne()用于删除单个文档
  • remove()是一个不推荐使用的函数,已被deleteOne()(删除单个文档)和deleteMany()(删除多个文档)取代

findOneAndDelete()应该可以在_id上删除.

Mongodb相关问答推荐

映射数组值并查找每个匹配的集合

如何联接Mongoose中的集合并检索特定字段

在对象mongodb的数组中查找元素

使用特定关键字和邻近度进行查询和过滤

在 MongoDB 中加入多个集合

如何将交易列表变成 token 数量的对象?

$group 和 sum + 添加所有大于

在mongodb中,如何使用聚合来获取字段之间的对应关系

在mongoose 中按键查找嵌套对象

在推入 mongodb 时自动填充 golang struct 中的 created_at 和 updated_at

如何聚合过滤器嵌套文档并从其他字段中获取值

mongo.lock 文件有什么用?

更新 MongoDB 中嵌套实体数组中的属性

使用 EventSourcing(NodeJS、MongoDB、JSON)跨多个偶尔连接的客户端同步数据

mongodb,pymongo,aggregate聚合给出奇怪的输出

你如何让 mongo 在远程服务器上运行?

Mongoose.pre('save') 不会触发

在 MongoDB 中快速搜索数十亿个小文档的策略

MongoDB $elemMatch $in

我需要手动关闭mongoose连接吗?