Удалить запись по id?
Почему я не могу удалить запись по _id?
Код:
db.collection('posts', function(err, collection) {
collection.remove({_id: '4d512b45cc9374271b00000f'});
});
6 ответов
Решение
Вам нужно пройти _id
значение как ObjectID, а не строка:
var mongodb = require('mongodb');
db.collection('posts', function(err, collection) {
collection.deleteOne({_id: new mongodb.ObjectID('4d512b45cc9374271b00000f')});
});
MongoDb теперь помечает метод удаления как устаревший. Он был заменен двумя отдельными методами: 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
var mongodb = require("mongodb");
Вы должны включить ObjectID из mongodb
var ObjectID = require('mongodb').ObjectID;
Затем используйте
var delete_id = request.params.id;//your id
collection.deleteOne({_id: new mongodb.ObjectID(delete_id.toString())});
1000% работает ...
Я думаю, нам нужно потребовать mongodb как const и использовать его с mongodb
Недавно я столкнулся с этой проблемой сегодня, и я обнаружил, что исправление:
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);
});