Как найти значение документа содержит% или $ в MongoDB? - PullRequest
1 голос
/ 22 марта 2020

Я хочу найти документ, в котором путь и папка содержат% или $. Я пробовал

collection.find( { $or: [ { "folder": /.*%.*/ }, { "path": /.*%.*/ } ] } )

, но я не могу подать заявку на $.

Это пример данных.

{
    "_id" : ObjectId("5a52fae0e3dbdb97e52cc8af"),
    "title" : null,
    "path" : "/ho%me",
    "folder": "test"
}
{
    "_id" : ObjectId("5a52fae0e3dbdb97e52cc8af"),
    "title" : null,
    "path" : "/home",
    "folder": "te$st"
}
{
    "_id" : ObjectId("5a52fae0e3dbdb97e52cc8af"),
    "title" : null,
    "path" : "/home%%%",
    "folder": "test$$$&&&%%%"
}
{
    "_id" : ObjectId("5a52fae0e3dbdb97e52cc8af"),
    "title" : null,
    "path" : "/home",
    "folder": "test"
}

1 Ответ

1 голос
/ 22 марта 2020

Это потому, что $ - это специальный знак в регулярном выражении, вы должны убежать это.

collection.find( { $or: [
    { "folder": /.*(%|\$).*/ },
    { "path": /.*(%|\$).*/ } 
] } )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...