簡體   English   中英

MongoDB中是否有“ regex”運算符? (不是“ $ regex”)

[英]Is there a “regex” operator in MongoDB? (not “$regex”)

我在討論與Yii2的有關正則表達式的問題,我相信我發現開發商之一。 開發人員堅持認為該框架可以通過所有單元測試,但是每次我嘗試在其中運行帶有正則表達式的查詢時,都會看到此代碼在我的MongoDB中運行:

find({
    "ns":"todevise.category",
    "limit":0,
    "batchSize":0,
    "skip":0,
    "flags":0,
    "query":{
        "path":{
            "regex":"^/30000", // <---- issue?
            "flags":""
        }
    },
    "fields":{
        "short_id":true,
        "path":true
    },
    "started_iterating":false
})

我認為這不是有效的MongoDB查詢,因為我找不到有關regex運算符的任何文檔。 (無論如何不要與$regex運算符混淆)。

所以,我的問題是:該查詢是否是有效的MongoDB查詢? 如果是, regex$regex運算符有什么區別?

我相信

{
  "regex":"^/30000", // <---- issue?
  "flags":"
}

是json對象,而regex$regex都是哈希鍵。 但是$regex是resreved關鍵字,被識別為用於建立條件查詢的運算符。 我猜想這種情況下的regex鍵只是忽略了。

$query->andFilterWhere([
      'path' => ['$regex'=> "^/30000"],
    ]);

暫無
暫無

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

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