Запрос Trino на MongoDB не использует индексы

Запрос данных монго из Trino приводит к сканированию коллекции вместо сканирования индекса. Пожалуйста, предложите.

Например, допустим, у нас есть ниже json в монго

      {
    "_id": "b4dc8c1d-feb0-41ad-826b-55de1826d63f",
    "event": {
        "status": "create",
        "header": {
            "direction": "DISTRIBUTION",
            "receiver": {
                "address": "street 1"
            },
            "transferReference": "123"
        }
    },
    "extractedFields": [
        {
            "field1": [
                "value1"
            ],
            "field2": [
                "value2"
            ]
        }
    ],
    "domainMetaData": {
      "receivedTime": {
        "$date": {
          "$numberLong": "1666571260554"
        }
      }
    }
    "statusDate": "2022-08-22T17:19:21.999"
}
      select * from schema.database.table where event.header.transferReference = '123'

Поле «genericEvent.header.transferReference» индексируется в Mongo. Объяснение плана показывает, что фильтр переносится на монго, но вся коллекция сканируется.

ScanFilter[table = schema.database.table, grouped = false, filterPredicate = ("genericevent"[2][3] = VARCHAR '123')]

      SELECT * FROM schema.database.tablewhere where statusDate  = timestamp '2022-08-22 17:19:21.999'

Поле statusDate индексируется в Mongo. Объяснение плана показывает, что фильтр переносится на монго, но вся коллекция сканируется.

      SELECT * FROM schema.database.tablewhere where _id  = 'b4dc8c1d-feb0-41ad-826b-55de1826d63f'

SQL-запрос выше работает нормально. Используется индекс и загружается только одна запись.

1 ответ

Сканирование индекса не поддерживается коннектором MongoDB . Это улучшение производительности, которое можно было бы добавить, но в настоящее время оно отсутствует.

Другие вопросы по тегам