Удалить запись по 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);
});
Другие вопросы по тегам