如何使用MongoDB的“$或”操作符与正则表达式有2个不同的密钥?

问题描述 投票:0回答:1

搜索栏上工作过的项目列表搜索(项目有姓名和地址)与蒙戈反应

键被称为“名”和“地址”

我想搜索栏基于用户输入的显示,它可以基于正则表达式是名称或地址

但我只能得到查询使用的关键之一,而不是两个

queryData['name'] = { $regex: searchField.replace(/[^a-zA-Z0-9-_@.]/g,''), $options: 'i' } // this lets me search through name array

当我更改“姓名”到地址,它会使用搜索栏的地址阵列我怎么能同时使用的姓名和地址?

我想这样做

queryData['$or'] = [
    { name: {regex: searchField.replace(...), $options: 'i' }},
    { address: {regex: searchField.replace(...),$options:'i'}}
]

但上述方法不能在督察工作,没有错误,是我的语法了吗?我还可以尝试一下呢?提前致谢。

javascript reactjs mongodb
1个回答
0
投票

唯一的一点是,在你的语法,你没有$在您正则表达式的字符串的前面。我想,我已经在本地运行MongoDB数据库上的例子,似乎只要工作,因为你使用正则表达式$,而不是正则表达式,那么(对我来说):

{$or: [{name: {regex: "Energy"}},{category: {regex: "Values"}}]}
© www.soinside.com 2019 - 2024. All rights reserved.