为什么我无法通过_id删除记录?
代码:
db.collection('posts', function(err, collection) {
collection.remove({_id: '4d512b45cc9374271b00000f'});
});
答案 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%有效...