MongoDB $ регулярное выражение для запроса «конец с» «$» char - PullRequest
1 голос
/ 14 апреля 2020

Я хочу отфильтровать ключи, заканчивающиеся символом $. Например, у меня есть следующий dict:

"list" : [
        {
            "username" : "user1",
            "exist" : "true"
        },
        {
            "username" : "user$",
            "exist" : "true"
        },
        {
            "username" : "user3",
            "exist" : "false"
        }
]

Теперь я хочу отфильтровать пользователя, который заканчивается на $:

db.collection('users').find({username: {"$regex": /$$/, $options: 'i'}})  

Но это не работает для меня, вероятно, потому что знак $, используемый для защиты конца строки. Я пытался использовать /^/$/$/ и некоторые другие, но безуспешно.

Не могли бы вы помочь?

Спасибо

1 Ответ

0 голосов
/ 14 апреля 2020

Это не только с MongoDB , по умолчанию регулярное выражение не работает так. Также вам может не понадобиться оператор $regex.

Запрос 1: Если вы хотите сопоставить слова, содержащие $.

db.collection.find({username: /[$]/}) 

Вывод: use$r, user$ , $user

Запрос 2: Если вы хотите сопоставить слова, содержащие $ в конце.

db.collection.find({username: /[$]$/})

Вывод: user$

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...