Я пытаюсь выполнить некоторые из операций CRUD для приложения MongoDB/NodeJS/Express, над которым я работаю, и мне сложно с командой deleteOne
, по-видимому, потому, что он не распознает мой запрос, хотя я не знаю почему.Ошибка утверждения: 1 == 0 для MongoDB команда deleteOne
Я поднял код MongoDB из NodeJS driver documentation, и мой блок кода выглядит следующим образом:
УДАЛИТЬ ЗАПРОС:
router.delete('/formula-list/:id', function(req, res){
var db = req.db.collection('formulas');
var id = req.params.id;
var query = { "_id": id };
db.deleteOne(query, function(err, r){
assert.equal(null, err);
assert.equal(1, r.deletedCount);
db.close();
});
res.end();
});
При запуске этого он возвращает ошибку AssertionError: 1 == 0
, которую я беру означает, что программа не имеет документа для удаления.
Однако, если я делаю console.log(req.params.id)
я получаю 587f6ff4824d0a085c2b57bf
, который является _id для документа в моей базе данных:
console.log(db)
возвращает следующее:
console.log (дБ):
{ s:
{ pkFactory:
{ [Function: ObjectID]
index: 858167,
createPk: [Function: createPk],
createFromTime: [Function: createFromTime],
createFromHexString: [Function: createFromHexString],
isValid: [Function: isValid],
ObjectID: [Circular],
ObjectId: [Circular] },
db:
EventEmitter {
domain: null,
_events: {},
_eventsCount: 0,
_maxListeners: undefined,
s: [Object],
serverConfig: [Getter],
bufferMaxEntries: [Getter],
databaseName: [Getter] },
topology:
EventEmitter {
domain: null,
_events: [Object],
_eventsCount: 7,
_maxListeners: undefined,
clientInfo: [Object],
s: [Object] },
dbName: 'formulas',
options: { promiseLibrary: [Function: Promise], readConcern: undefined },
namespace: 'formulas.formulas',
readPreference:
{ _type: 'ReadPreference',
mode: 'primary',
tags: undefined,
options: undefined },
slaveOk: true,
serializeFunctions: undefined,
raw: undefined,
promoteLongs: undefined,
promoteValues: undefined,
promoteBuffers: undefined,
internalHint: null,
collectionHint: null,
name: 'formulas',
promiseLibrary: [Function: Promise],
readConcern: undefined } }
Я принимаю это означает, что сама сборная Монго также признается, поскольку она не возвращается undefined
.
Любые советы по поводу того, что я ошибаюсь, будут очень признательны.
Вы должны бросить 'req.params.id' к первому, т.е. типа ObjectId 'var ObjectID = require ('mongodb'). ObjectID; var id = new ObjectID (req.params.id); ' – chridam