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的查询。