Если вы не дадите результаты подзапроса RAW, вы получите массив объектов, которые не могут соответствовать значению.При использовании RAW он становится массивом значений.
Похоже, что вы хотите Document, который имеет максимальное creationDateTime.Попробуйте это.
SELECT RAW MAX([o1.creationDateTime, o1])[1]
FROM `order` AS o1
WHERE o1.creationDateTime IS NOT NULL;
Максимальный аргумент - ARRY из 2 элементов.1-й - creationDateTime, 2-й - весь документ.Он пытается MAX значение ARRAY, т. Е. 1-е значение, если есть связи, то второе значение.В конце концов он проецирует 2-е значение, т.е. весь документ.
Это позволяет избежать сканирования всего заказа дважды.
Если вы хотите более эффективный запрос.
Use Index Order.
CREATE INDEX ix1 ON `order`(creationDateTime DESC);
SELECT RAW o1
FROM `order` AS o1
WHERE o1.creationDateTime IS NOT NULL
ORDER BY o1.creationDateTime DESC LIMIT 1;
OR
Use Covered query decide which document key qualifies and then Fetch that document only.
SELECT o.* FROM (
SELECT RAW MAX([o1.creationDateTime, META(o1).id])[1]
FROM `order` AS o1
WHERE o1.creationDateTime IS NOT NULL) AS o1
JOIN `order` AS o ON KEYS o1;