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()已弃用。使用deleteOne(), deleteMany()或bulkWrite()。
我使用的代码
TeleBot.deleteMany({chatID: chatID}, function (err, _) {
if (err) {
return console.log(err);
}
});
其他回答
小心findOne和删除!
User.findOne({name: 'Alice'}).remove().exec();
上面的代码删除了所有名为“Alice”的用户,而不仅仅是第一个用户。
顺便说一下,我更喜欢这样删除文档:
User.remove({...}).exec();
或者提供一个回调函数并省略exec()
User.remove({...}, callback);
如果你不喜欢迭代,那就试试
FBFriendModel.find({ id:333 }).remove( callback );
or
FBFriendModel.find({ id:333 }).remove().exec();
find返回一个Query,它有一个remove函数。
更新为Mongoose v5.5.3 - remove()现在已弃用。使用deleteOne(), deleteMany()或findOneAndDelete()代替。
如果你知道文档的_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)
db.collection.remove(<query>,
{
justOne: <boolean>,
writeConcern: <document>
})
根据Samyak Jain的回答,我使用异步等待
let isDelete = await MODEL_NAME.deleteMany({_id:'YOUR_ID', name:'YOUR_NAME'});