Обеспечьте нечувствительность к регистру для облачных запросов

Мой запрос имеет следующий селектор,

{
  "selector": {
    "_id": {
      "$gt": null
    },
    "series": {
      "$regex": "(?i)mario"
    }
  }
}

Теперь, если у меня есть документ с series = mario12, приведенный выше запрос возвращает этот документ, чего не должно происходить. Я хочу, чтобы мой запрос игнорировал только случай «марио».

Как я могу добиться нечувствительности к регистру?


person swa    schedule 21.07.2017    source источник
comment
Ваше регулярное выражение соответствует шире, чем вы предполагали. Конечно, он соответствует «марио» без учета регистра, но в любом месте строки. Якорь в начале и в конце строки, как предлагает markwatsonatx ниже.   -  person xpqz    schedule 21.07.2017


Ответы (1)


Я не уверен, что правильно понял вопрос. Если вы хотите сопоставить только полное слово «марио» без учета регистра, вы должны использовать такой селектор:

{
  "selector": {
    "_id": {
      "$gt": null
    },
    "series": {
      "$regex": "^(?i)mario$"
    }
  }
}

Это будет соответствовать «марио», «Марио», «МАРИО» и т. д., но не будет соответствовать «марио12», «Марио12», «12Марио» и т. д.

person markwatsonatx    schedule 21.07.2017