按ID删除记录?

时间:2012-10-15 18:17:01

标签: node.js mongodb node-mongodb-native

为什么我无法通过_id删除记录?

代码:

db.collection('posts', function(err, collection) {
   collection.remove({_id: '4d512b45cc9374271b00000f'});
});

4 个答案:

答案 0 :(得分:43)

您需要将_id值作为ObjectID传递,而不是字符串:

var mongodb = require('mongodb');

db.collection('posts', function(err, collection) {
   collection.deleteOne({_id: new mongodb.ObjectID('4d512b45cc9374271b00000f')});
});

答案 1 :(得分:6)

MongoDb现已将remove方法标记为已弃用。它已被两个单独的方法取代:deleteOne和deleteMany。

以下是相关入门指南:https://docs.mongodb.org/getting-started/node/remove/

这是一个快速示例:

var mongodb = require('mongodb');

db.collection('posts', function(err, collection) {
   collection.deleteOne({_id: new mongodb.ObjectID('4d512b45cc9374271b00000f')}, function(err, results) {
       if (err){
         console.log("failed");
         throw err;
       }
       console.log("success");
    });
});

答案 2 :(得分:1)

使用 TypeScript,您可以使用导入,而不是需要整个库

import { ObjectID } from 'mongodb'   

 

db.collection('posts', function(err, collection) {
   collection.deleteOne({_id: new ObjectID('4d512b45cc9374271b00000f')});
});

答案 3 :(得分:0)

首先包含mongodb

var mongodb = require("mongodb");

您必须包含mongodb中的ObjectID

var ObjectID = require('mongodb').ObjectID;

然后使用

var delete_id = request.params.id;//your id

 collection.deleteOne({_id: new mongodb.ObjectID(delete_id.toString())});

1000%有效...