我在MongoDB中有这个架构。const movieSchema = new mongoose.Schema({ title: String, year: Number, score: Number, rating: String }) 当我试图删除年份大于1999的集合时,我错误地设置了条件为: Movie.deleteMany({yeaer: {$gte: 1999}}).then(res => {console.log(res)}) 这种情况发生了 结果我的所有数据都被删除了
如果从deleteMany()中省略条件属性,mongoose将删除该模型中的所有文档。如果拼写条件错误,则情况也是如此。这是一种相当危险的默认行为,但您可以通过禁用mongoose中的严格查询模式来保护自己:mongoose.set('strictQuery', false)
pymongo
中,我尝试使用您相同的非匹配过滤器对玩具集合进行delete_many
,幸运的是它返回了deleted_count
为0
,并且我验证了集合完全保持不变。太好了! - rickhg12hs