最近有一个需求,要查询一个二维数组下面是否含有某个字段
"jichu" : [
[
"商品名称",
"罗衣知性保暖毛呢西装外套女2020冬装新款通勤OL深蓝色西服03476 深蓝色 M"
],
[
"商品品牌",
"Roeyshouse"
],
[
"商品进价",
"200"
],
[
"商品售价",
"598"
],
[
"商品库存",
"1200"
],
[
"商品预警值",
"300"
],
[
"促销活动",
"满300减40"
]
],
例如 : 要查询该数组下面是否含有商品名称为 ’ Roeyshouse ’ 的字段
可以使用 :
var reg = new RegExp(req.query.value)
sql.find(proInfo, { 'jichu': { '$elemMatch': { '$elemMatch': { '$in': [reg] } } }}, { __v: 0 })
如果要进行模糊查询,可以将请求体变成一个正则来匹配
注意: 如果只是查询一个一维数组,那么只要嵌套一次'$elemMatch': { '$in': [reg] }
即可