按ID删除记录?

Sab*_*ble 16 mongodb node.js node-mongodb-native

为什么我不能通过_id删除记录?

码:

db.collection('posts', function(err, collection) {
   collection.remove({_id: '4d512b45cc9374271b00000f'});
});
Run Code Online (Sandbox Code Playgroud)

Joh*_*yHK 47

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

var mongodb = require('mongodb');

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

  • @Denis 当然,只需使用 [`$in`](http://docs.mongodb.org/manual/reference/operator/query/in/#op._S_in):`{_id: {$in: idsArray}} ` (2认同)

Bil*_*ell 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");
    });
});
Run Code Online (Sandbox Code Playgroud)