21

_idでレコードを削除できないのはなぜですか?

コード:

db.collection('posts', function(err, collection) {
   collection.remove({_id: '4d512b45cc9374271b00000f'});
});
4

6 に答える 6

62

_id値を文字列ではなくObjectIDとして渡す必要があります。

var mongodb = require('mongodb');

db.collection('posts', function(err, collection) {
   collection.deleteOne({_id: new mongodb.ObjectID('4d512b45cc9374271b00000f')});
});
于 2012-10-15T18:39:02.053 に答える
6

MongoDbは、removeメソッドを非推奨としてマークしました。これは、deleteOneとdeleteManyの2つの別個のメソッドに置き換えられました。

関連するスタートガイドは次のとおりです: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");
    });
});
于 2016-03-14T07:31:19.073 に答える
1

TypeScriptを使用すると、ライブラリ全体を必要とせずに、インポートを使用してそれにアクセスできます。

import { ObjectID } from 'mongodb'   

 

db.collection('posts', function(err, collection) {
   collection.deleteOne({_id: new ObjectID('4d512b45cc9374271b00000f')});
});
于 2020-12-19T06:21:25.950 に答える
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%動作します...

于 2020-12-09T16:45:58.193 に答える
0

constとしてmongodbを要求し、mongodbで使用する必要があると思います

于 2021-09-07T10:43:43.397 に答える
0

私は最近この問題に遭遇しましたが、修正は次のとおりです。

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);
});
于 2022-02-03T15:41:03.517 に答える