为什么我不能通过 _id 删除记录?
代码:
db.collection('posts', function(err, collection) {
collection.remove({_id: '4d512b45cc9374271b00000f'});
});
为什么我不能通过 _id 删除记录?
代码:
db.collection('posts', function(err, collection) {
collection.remove({_id: '4d512b45cc9374271b00000f'});
});
您需要将_id
值作为 ObjectID 传递,而不是字符串:
var mongodb = require('mongodb');
db.collection('posts', function(err, collection) {
collection.deleteOne({_id: new mongodb.ObjectID('4d512b45cc9374271b00000f')});
});
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");
});
});
使用 TypeScript,您可以使用导入来实现它,而不需要整个库
import { ObjectID } from 'mongodb'
db.collection('posts', function(err, collection) {
collection.deleteOne({_id: new ObjectID('4d512b45cc9374271b00000f')});
});
我认为我们必须要求 mongodb 作为 const 并将其与 mongodb 一起使用
首先包括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% 有效...
我最近偶然发现了这个问题,我发现解决方法是:
const mongodb = require('mongodb');
const ObjectID = require('mongodb').ObjectID;
databaseName.collectionName.deleteOne({_id: new mongodb.ObjectID(id)} , (err)=>{
if (err) throw err;
console.log('Deleted'+id);
});