使用正则表达式或Let删除集合中包含子字符串的所有文档



下午好,

我需要从单个MongoDB中的许多集合中删除过去几个月结束的所有旧文档。以前我手动更新每个集合:

db.df_FI.deleteMany({ "key" : /2019-05-01_2019-05-30_Reported/}) 
db.df_Final_FI.deleteMany({ "key" : /2019-05-01_2019-05-30_Reported/}) 
db.df_Manual_Booked_FI.deleteMany({ "key" : /2019-05-01_2019-05 30_Reported/}) 
db.df_Manual_Booked_Final_FI.deleteMany({ "key" : /2019-05-01_2019-05-30_Reported/})

我想详细说明一下。我尝试了正则表达式和let,但无济于事。更新一个集合示例

db.df_FI.deleteMany(
{ 
key :         "$regex" : key_sub_string
}
)
db.df_FI.remove(    
{ $expr: { $in: [ "$key", "$$key_sub_string" ] } },
{ let : { key_sub_string: "2021-08-01_2021-08-11_Reported" } }
)

更新失败。

彼得

你肯定可以制作字符串但是,试着这样做

modelName.deleteMany({ yourColumnNameInModel: { $gte: key_sub_string } }).then(function(){
// Success
}).catch(function(error){
// Not Success    });

,为什么要在变量的末尾添加报告?

最新更新