猫鼬中使用$ regex和$ in运算符时,空值将返回数组

时间:2018-11-18 14:38:28

标签: javascript node.js mongodb mongoose

我正试图根据正则表达式从猫鼬中找到状态。但是在应用新的RegExp时,它会返回{}空json。

请求如下以找到两个状态

{
"state": ["Albama","abc"];
}

    let stateRegex = new RegExp(req.body.state, 'i');
    console.log(stateRegex)
    query['subCategoriesAttributes.attributes.state.value'] = {$in: [new RegExp(req.body.state, 'i')]};
    andOperator.push(query);

下面是在控制台中记录的结果

console.log(JSON.stringify(andOperator))
console.log(JSON.stringify(query))

结果是:

/Albama,abc/i
[{"subCategoriesAttributes.attributes.state.value":{"$in":[{}]}}]
{"$and":[{"subCategoriesAttributes.attributes.state.value":{"$in":[{}]}}]}

我通过以下方式手动尝试过:

 let stateRegex = [ /Albama/i, /abc/i ]
 console.log(stateRegex)
 query['subCategoriesAttributes.attributes.state.value'] = {$in: stateRegex};
 andOperator.push(query);

结果是

[ /Albama/i, /abc/i ]
[{"subCategoriesAttributes.attributes.state.value":{"$in":[{},{}]}}]
{"$and":[{"subCategoriesAttributes.attributes.state.value":{"$in":[{},{}]}}]}

如上$ in运算符之后的响应所示,它返回空json。我在做错什么吗,或者可能是语法问题

0 个答案:

没有答案