簡體   English   中英

如何在帶有2個不同鍵的正則表達式中使用mongo'$ or'運算符?

[英]How to use mongo '$or' operator with regex with 2 different keys?

在搜索欄上工作以與mongo反應搜索項目列表(具有名稱和地址的項目)

這些鍵稱為“名稱”和“地址”

我希望搜索欄根據用戶輸入顯示,可以是基於正則表達式的名稱或地址

但是我只能使查詢使用鍵之一,而不能同時使用

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'}}
]

但是上述方法不起作用,檢查器上沒有錯誤,我的語法關閉了嗎? 我還能嘗試什么? 提前致謝。

唯一的事情是,在您的語法中,您的正則表達式字符串前沒有$。 我在本地運行的MongoDB數據庫上嘗試了您的示例,只要您使用$ regex而不是regex,它就可以正常工作,因此(在我的情況下):

 {$or: [{name: {regex: "Energy"}},{category: {regex: "Values"}}]} 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM