MongoDB的高级查询语言

3
RDBMS的一个重要优点是SQL作为一种声明性和强大的查询语言。我知道MongoDB有一种查询语言,但它不包括连接操作。有没有人尝试过为MongoDB制作高级查询语言,能够:
a)处理跨不同集合的连接操作?
b)通过查看集合中的索引和索引的基数来智能地处理连接操作--即模拟SQL中的查询计划?
似乎你应该能够编写一个更高级别的查询语言,使用(b)来智能输出JavaScript代码和Mongo本机查询的组合,以执行(a)。

请看这个链接:https://dev59.com/lW855IYBdhLWcg3w75Eu - c0deNinja
1个回答

12
1) MongoDB确实有"查询规划",但它采用了不同的方法。它会并行运行多个相同的查询选项,并查看哪个先完成,然后记住它并将其用作编译计划一段时间,然后再次运行测试以考虑数据的变化等因素。
2) 跨集合的JOIN操作会使Mongo在不同节点上运行哈希和合并操作,从而减慢其他客户端的速度。这显然是一个有意的决定,不允许像这样的查询,并将其推送到应用程序中。您可以在文档中设计好所需的所有内容(因此支持嵌套文档),或者在客户端中执行JOIN操作。
最后但并非最不重要的,有一次尝试在NoSQL数据库之间构建统一的查询语言——UnQL——但由于列式、文档式、键值对和图形数据库之间的差异如此之大,人们只能做出很多努力来概括查询数据的过程。

还有一些关于这个主题的内容:


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接