_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の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");
});
});
TypeScriptを使用すると、ライブラリ全体を必要とせずに、インポートを使用してそれにアクセスできます。
import { ObjectID } from 'mongodb'
db.collection('posts', function(err, collection) {
collection.deleteOne({_id: new ObjectID('4d512b45cc9374271b00000f')});
});
最初に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を要求し、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);
});