Как запросить поле из Mongo, где значение на самом деле является числом, но хранится в виде строки? - PullRequest
0 голосов
/ 16 января 2019

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

Объект 1:

{
"_id" : ObjectId("5c3f6aec29c2e3193315b485"),
"flightCode" : "000541300157840"
}

Объект 2:

{
"_id" : ObjectId("5c3f6aec29c2e3193315b485"),
"flightCode" : "00054130015784"
}

Если я собираюсь найти код рейса, который соответствует номеру 54130015784, как я напишу свой запрос?

Ответы [ 2 ]

0 голосов
/ 16 января 2019

Если вы считаете, что ваши данные будут иметь текстовый код полета, чтобы можно было идентифицировать строку, мы можем использовать это.

Regex:
54130015784(?="\n)

Пояснение:

Positive Lookahead (?="\n)
Assert that the Regex below matches
" matches the character " literally (case sensitive)
\n matches a line-feed (newline) character (ASCII 10)

Пример:
https://regex101.com/r/sF0YfH/3

Дайте мне знать, если это работает. Если не дать четкое представление о том, что вы хотите.

0 голосов
/ 16 января 2019

Вам нужен оператор $ regex со следующим регулярным выражением:

var code = "541300157840";
var regex = "^0*" + code + "$"

db.col.find({ flightCode: { $regex: new RegExp(regex) } })

, где * означает, что 0 встречается ноль или более раз, что означает, что оно работает как для 000541300157840, так и для 541300157840

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