db.getCollection('aj').find({"shapes.color":"red"},{"shapes.$":1})
OUTPUTS
{
"shapes" : [
{
"shape" : "circle",
"color" : "red"
}
]
}
Эта проблема разрешена в сообщении этого форума .
Это в основном проблема с вашей версией clang
В моем случае причиной той же ошибки было то, что имя макроса препроцессора в настройках целевой сборки содержало знак дефиса «-», что-то вроде этого TEST-DEBUG = 1.
Имена конфигурации конфигурации Xcode с дефисами ('-') вызывают сбои сборки модулей
# if __has_extension(is_enum) ~~~~~~~~~~~~~~~^
Это языковое расширение Clang , называемое макросами проверки функции . Они долгое время были для Клана. GCC предоставил их, начиная с GCC 5.0, IIRC.
__has_extension
можно проверить как макрос препроцессора. Итак, сначала вы проверяете наличие макроса, а затем проверяете эту функцию:#if defined(__has_extension) # if __has_extension(is_enum) ... # endif #endif
__has_extension(is_enum)
должен находиться в отдельной строке.Он работает для включения файлов. Из проекта Crypto ++ файл rdrand.cpp :
# include <immintrin.h> // rdrand, MSC, ICC, and GCC # if defined(__has_include) # if __has_include(<x86intrin.h>) # include <x86intrin.h> // rdseed for some compilers, like GCC # endif # endif