FBFriendModel.find({
id: 333
}, function (err, docs) {
docs.remove(); //Remove all the documents that match!
});
上面的方法似乎不管用。记录还在那里。
有人能修好吗?
FBFriendModel.find({
id: 333
}, function (err, docs) {
docs.remove(); //Remove all the documents that match!
});
上面的方法似乎不管用。记录还在那里。
有人能修好吗?
当前回答
你可以直接在remove函数中使用查询,这样:
FBFriendModel.remove({ id: 333}, function(err){});
其他回答
Docs是一个文档数组。所以它没有一个mongoosemmodel .remove()方法。
可以分别迭代和删除数组中的每个文档。
或者—因为看起来您是通过(可能)唯一的id查找文档—使用findOne而不是find。
根据Samyak Jain的回答,我使用异步等待
let isDelete = await MODEL_NAME.deleteMany({_id:'YOUR_ID', name:'YOUR_NAME'});
你可以直接在remove函数中使用查询,这样:
FBFriendModel.remove({ id: 333}, function(err){});
如果你知道文档的_id,你可以使用findByIdAndDelete(id),这是findOneAndDelete({_id: id})的简写。
import Question from '../models/Question';
const deleteQuestion = (questionId: string) => {
try {
Question.findByIdAndDelete(questionId);
} catch (e) {
console.error(e);
}
};
这里的questionId是documentId (_id)
概括来说,你可以使用:
SomeModel.find( $where, function(err,docs){
if (err) return console.log(err);
if (!docs || !Array.isArray(docs) || docs.length === 0)
return console.log('no docs found');
docs.forEach( function (doc) {
doc.remove();
});
});
实现这一目标的另一种方法是:
SomeModel.collection.remove( function (err) {
if (err) throw err;
// collection is now empty but not deleted
});