MongoDB如何修改查询条件,筛选日期字段值在指定数组的数据?
MongoDB查询对象修改方案
步骤1:提取目标日期数组
先从返回的对象数组中取出需要匹配的日期集合:
// 假设返回的对象数组变量名为filterArr const targetDates = filterArr.find(item => item.key === 'demo_date')?.value || [];
步骤2:修改查询对象
保留deleted: false条件的同时,添加嵌套字段的数组匹配规则,用$in操作符实现高效筛选:
const queryObj = { $and: [ { deleted: false }, { "demoLayer1.demo_date": { $in: targetDates } } ] };
关键说明
- 用点语法
"demoLayer1.demo_date"访问文档中的嵌套字段 $in操作符专门用于匹配字段值存在于指定数组中的场景,比多$or条件性能更优$and确保deleted: false和日期匹配两个条件同时生效
内容的提问来源于stack exchange,提问作者AkiZukiLenn
相关产品推荐
相关产品推荐

