Вот лучший способ сделать то, что вы изначально задали; то есть проверять, действительно ли определенное поле хранит значение типа массива:
.find({ "author": { "$gte": [] } })
Функциональность типа $ MongoDB для массивов, хотя и хорошо документирована, является ИМО несовместимой со всеми другими проверками типа $ и, очевидно, 't работать для этого варианта использования, но начиная примерно с 2.6 вы можете использовать указанный выше запрос, чтобы проверить, является ли это значение массивом (пустое или нет).
Я говорю, что это «лучше», чем в настоящее время выбранный ответ, потому что выполнение кода через $, где не рекомендуется, если стандартные конструкторы запроса действительно не могут выполнить задание.
Чтобы разработать, $ где не рекомендуется из-за производительности из-за отсутствия возможности использовать индексы в выполненный код. Подробнее: https://docs.mongodb.com/manual/reference/operator/query/where/#considerations
Кроме того, если вы хотите проверить, не -пустые массивы, используйте это:
.find({ "author": { "$gt": [] } })
Технически это тоже лучше, чем соответствующее решение $ exists, соответствующее текущему ответу, так как поле может иметь объект без массива с полем с именем «0 », и это будет соответствовать« непустому массиву », что в этом случае неверно.
Добавьте псевдоним после последней скобки.
select count(*) from
(select idCover from x90..dimCover group by idCover having count(*) > 1) a
SELECT COUNT (*) FROM
( SELECT IdCover FROM x90..dimCover group by idCover having count(*) > 1) AS a
(обратите внимание на псевдоним в конце)