Mon go запрос для получения значения через запятую - PullRequest
0 голосов
/ 24 апреля 2020

У меня есть запрос, который проходит только в прямом направлении.

пример:

{
  "orderStatus": "SUBMITTED",
  "orderNumber": "785654",
  "orderLine": [
    {
      "lineNumber": "E1000",
      **"trackingnumber": "12345,67890",**
      "lineStatus": "IN-PROGRESS",
      "lineStatusCode": 50
    }
  ],
  "accountNumber": 9076
}
find({'orderLine.trackingNumber' : { $regex: "^12345.*"} })**

Когда я использую вышеуказанный запрос, я получаю весь документ. Но я хочу получить документ, когда я ищу по значению 67890

В любой момент времени я всегда буду запрашивать только один номер отслеживания. 12345 или 67890 Либо с 12345, либо с 67890. Есть вероятность, что значение номера отслеживания может увеличить его значение 12345,56789,01234,56678.

Мне нужно вытащить весь документ независимо от того, какой номер отслеживания находится в любой позиции.

ВЫХОД

должен быть целым документом

{"orderStatus": "SUBMITTED", "orderNumber": "785654", "orderLine": [{"lineNumber": "E1000", "trackingnumber": "12345,67890","lineStatus": "IN-PROGRESS", "lineStatusCode": 50}], "accountNumber": 9076}

Также я выполнил индексирование для поля trackingNumber. Нужна помощь здесь. Заранее спасибо.

1 Ответ

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

После поиска будет выполняться поиск с 12345 или 67890. Это похоже на условие

find({'orderLine.trackingNumber' : { $regex: /12345/} })
find({'orderLine.trackingNumber' : { $regex: /67890/} })

Существует также альтернативный способ сделать это

Создать текстовый индекс

db.order.createIndex({'orderLine.trackingnumber':"text"})

Вы можете использовать этот индекс для поиска значения из поля отслеживания номера

db.order.find({$text:{$search:'12345'}})
--
db.order.find({$text:{$search:'67890'}})
--
//Do take note that you can't search using few in between characters
//like the following query won't give any result..
db.order.find({$text:{$search:'6789'}}) //have purposefully removed 0

Чтобы лучше понять, как работает $text поиск, пожалуйста, go через следующую ссылку .

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