Mongodb Tableau | BI Connector, $ lookup query Синтаксис SQL - левое внешнее соединение - PullRequest
0 голосов
/ 01 ноября 2018

Я пытаюсь реализовать синтаксис SQL запроса $ lookup для левого внешнего соединения внутри таблицы, но он никогда не работает. Я пробую этот подход, потому что «LEFT OUTER JOIN» занимает много времени (часов) для обработки информации, так как мои коллекции в гигабайтах.

Ошибка, которую я постоянно получаю из Таблицы SQL здесь:

Произошла ошибка при обмене данными с MongoDB BI Connector.

Bad Connection: Tableau не удалось подключиться к источнику данных. [MySQL] [Драйвер ODBC 8.0 (w)] [mysqld-5.7.12 mongosqld v2.7.0] parse sql 'SELECT * ОТ ( SELECT *, video_docs ИЗ видео ГДЕ video_docs IN (ВЫБРАТЬ * ОТ видео_авторов ГДЕ author_name = videos.author); ) Пользовательский SQL-запрос LIMIT 0 'error: синтаксическая ошибка в позиции 147

enter image description here

BI-коннектор работает нормально в соответствии с документацией, но все равно он говорит мне, что это ошибка синтаксического анализа.

Мой эквивалент SQL-запроса для оболочки Mongo

Mongo Shell Query, он отлично работает!

db.videos.aggregate([
   {
     $lookup:
       {
         from: "video_authors",
         localField: "author",
         foreignField: "author_name",
         as: "video_docs"
       }
  }
])

SQL-запрос, никогда не работает

SELECT *, video_docs
FROM videos
WHERE video_docs IN (SELECT *
FROM video_authors
WHERE author_name= videos.author);

Я следую этой ссылке из Mongodb. https://docs.mongodb.com/manual/reference/operator/aggregation/lookup/#perform-a-single-equality-join-with-lookup

Любая помощь будет оценена!

С уважением,

Аднан

...