我试图在表中实现左外连接的$lookup query sql语法,但它从来都不起作用。我尝试这种方法是因为“left outer join”处理信息需要很多时间(小时),因为我的集合是以千兆字节为单位的。
每次从tableau sql中得到的错误如下:
与mongodb bi连接器通信时出错。
连接错误:tableau无法连接到数据源[mysql][odbc 8.0(w)driver][mysqld-5.7.12 mongosqld v2.7.0]parse sql'selectfrom(select,video_docs from videos where video_docs in(select*from video_authors where author_name=videos.author);)自定义sql查询限制0'错误:位置147处出现语法错误
根据文档,bi连接器工作正常,但它仍然告诉我这是解析错误。
mongo shell的sql查询等价物
mongo shell查询,它的工作非常完美!
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-单相等联接查找
任何帮助都将不胜感激!
当做,
阿德南
暂无答案!
目前还没有任何答案,快来回答吧!