Mongodb是否有插件来查询多个集合,如“join”?

Mongodb不支持多集合查询,如SQL中的“左连接”。 它只支持“填充”,但不能同时填充子文档和查找父文档。

SQL中的一行查询代码,而mongodb用户必须自己查询每个父文档_id。

我遇到了这样的问题: 如何填充其他集合的子文档在mongoose?

https://stackoverflow.com/questions/24075910/mongoose-cant-update-or-insert-subdocuments-array

我终于在forEach循环中自己查询每个_id。

有没有插件来查询多个集合,如“join”? 或者有没有更好的解决scheme,以多个收集查询?

有没有插件来查询多个集合,如“join”?

某些数据库产品具有提供额外function的插件,例如用于Postgres的PostGIS。 MongoDB没有JOIN的插件。 这样的插件永远不会存在,因为MongoDB被devise为具有连接支持。

mongoose…

所以有一个“join”支持的地方是驱动程序。 一些驱动程序和包装( 如Morphia )支持从不同的集合中打开文档及其相关的子文档。 但是,在这种情况下,驱动程序/工具只是代表您执行多个查询的工作。

这很容易产生太多的查询。

或者有没有更好的解决scheme,以多个收集查询?

在MongoDB中完全提供的唯一解决scheme是通过Map / Reduce或Aggregation Framework工具。 即使使用这些工具,也可能需要多次传输数据,然后编写一些脚本来拼接这些数据。 这将是很多工作,但是你正在试图做一些MongoDB不喜欢做的事情,所以这是预期的。

另一个解决scheme是利用Hadoop。 MongoDB有一个Hadoop插件,所以你可以在现有的数据上运行Hadoop。 添加一些像Hive一样的Hadoop查询工具,然后可以在顶部获得类似SQL的查询。 这也将是很多工作,但将使运行各种类似SQL的查询。