Синтаксис подзапроса SQL Server

Вот лучший способ сделать то, что вы изначально задали; то есть проверять, действительно ли определенное поле хранит значение типа массива:

.find({ "author": { "$gte": [] } })

Функциональность типа $ MongoDB для массивов, хотя и хорошо документирована, является ИМО несовместимой со всеми другими проверками типа $ и, очевидно, 't работать для этого варианта использования, но начиная примерно с 2.6 вы можете использовать указанный выше запрос, чтобы проверить, является ли это значение массивом (пустое или нет).

Я говорю, что это «лучше», чем в настоящее время выбранный ответ, потому что выполнение кода через $, где не рекомендуется, если стандартные конструкторы запроса действительно не могут выполнить задание.

Чтобы разработать, $ где не рекомендуется из-за производительности из-за отсутствия возможности использовать индексы в выполненный код. Подробнее: https://docs.mongodb.com/manual/reference/operator/query/where/#considerations

Кроме того, если вы хотите проверить, не -пустые массивы, используйте это:

.find({ "author": { "$gt": [] } })

Технически это тоже лучше, чем соответствующее решение $ exists, соответствующее текущему ответу, так как поле может иметь объект без массива с полем с именем «0 », и это будет соответствовать« непустому массиву », что в этом случае неверно.

28
задан cindi 9 July 2009 в 10:05
поделиться

2 ответа

Добавьте псевдоним после последней скобки.

select count(*) from 
(select idCover from x90..dimCover group by idCover having count(*) > 1) a
44
ответ дан RedFilter 14 October 2019 в 10:36
поделиться
SELECT COUNT (*) FROM
 ( SELECT IdCover FROM x90..dimCover group by idCover having count(*) > 1) AS a

(обратите внимание на псевдоним в конце)

16
ответ дан 28 November 2019 в 02:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: