【问题标题】:Advanced query language for MongoDB [closed]MongoDB的高级查询语言[关闭]
【发布时间】:2023-12-12 02:21:01
【问题描述】:

RDBMS 的一大优势是 SQL 作为一种声明性非常强且功能强大的查询语言。我知道 MongoDB 有一种查询语言,但它不包括连接。有没有人尝试过为 MongoDB 开发一种高级查询语言?

a) 跨不同集合的句柄连接?

b) 通过查看集合中的索引和索引的基数来巧妙地处理连接——即模仿 SQL 中的查询计划?

看来您应该能够编写更高级别的查询语言,使用 (b) 来巧妙地输出 Javascript 代码和执行 (a) 的 Mongo 本机查询的组合。

【问题讨论】:

标签: mongodb mongodb-query


【解决方案1】:

1) MongoDB 确实有“查询计划”。它does it a little differently though。它衍生出各种选项来并行运行相同的查询,并查看哪个先完成,然后记住它并将其用作编译计划一段时间,然后再次重新运行测试以说明数据等。

2) 跨集合加入将使 Mongo 跨不同节点运行散列和合并,这会减慢其他客户端的速度。不允许这样的查询并将其推送到应用程序显然是一个有意识的决定。您可以构建您的文档,以便您拥有所需的一切(因此support for nested documents),或者您在客户端中加入

最后但并非最不重要的一点是,有人尝试在 NoSQL 数据库之间构建统一的查询语言 - UnQL - 但在面向列、面向文档、键值和图形数据库之间存在如此大的差异可以做很多事情来概括查询数据的过程。

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

【讨论】: