Удалить документ монго по идентификатору в Sails-mongo не работает

У меня есть objId($oid) документа, и я пытаюсь удалить документ в Sails с помощью функции уничтожения.

User.destroy({id:objId}).exec(cb);

Это не работает. Я попробовал предложение из другого сообщения. Но это тоже не работает. Я тоже пытался использовать функцию Mongo ObjectId, но она тоже не работает. Какие-либо предложения. Я могу использовать нативную функцию, но предпочитаю этого не делать.


person Spatil    schedule 17.12.2015    source источник
comment
Можете ли вы предоставить дополнительную информацию, например, полученную ошибку? Попробуйте User.destroy(objId).exec(function(err, destroyed){ if(err) {...} else {...} });   -  person    schedule 17.12.2015
comment
@metzuda Я попробовал User.findOne(objId).exec(function(e,r){console.log(e,r)}), чтобы увидеть, работает ли передача только objId. Не показывает никакой ошибки. Печатает null и undefined.   -  person Spatil    schedule 22.12.2015
comment
если r возвращает значение undefined, это обычно означает, что его нет в базе данных.   -  person    schedule 22.12.2015
comment
Objid, который я пытаюсь запросить, существует. Я попробовал User.find({id:User.mongo.objectId(objId)}).exec(function(e,r){console.log(r)). Он возвращает всю коллекцию пользователей вместо конкретного пользователя. Должен ли я использовать _id?   -  person Spatil    schedule 22.12.2015


Ответы (2)


В вашей модели попробуйте изменить тип идентификатора как objectid и надеюсь, что это сработает.

module.exports={
    id : {
       type : objectid
    }
}
person selftaught91    schedule 15.12.2016

Чтобы использовать ObjectId в любой операции с mongoDb, вы можете сначала попробовать загрузить нативную библиотеку, как в этом примере.

var ObjectId = require('mongodb').ObjectID;

User.native(function (err, collection) { collection.update({_id: new ObjectId(anIdVariable)}, {$push:{pubs:aPubsVariable}}, function (err) {});

У меня также работает для удаления документа:

collection.deleteOne({ _id :ObjectId("5920263cce3510410d492489") }, функция(ошибка, результат) {}

person Fabien Thetis    schedule 20.05.2017