我相信MongoDB不会正式支持"加入".这是什么意思?

这是否意味着"我们无法将两个集合(表)连接在一起"?

我想如果我们把集合A中的_id的值放到集合B中的other_id,我们能简单地连接两个集合吗?

如果我的理解是正确的,MongoDB可以将两个表连接在一起,比如说,当我们运行查询时.这是通过http://www.mongodb.org/display/DOCS/Schema+Design中的"参考"完成的.

那么"加入"到底意味着什么?

我很想知道答案,因为这对学习MongoDB模式设计至关重要.http://www.mongodb.org/display/DOCS/Schema+Design

推荐答案

它不是join,因为只有在需要时才会判断关系.另一方面,联接(在SQL数据库中)将解析关系并返回它们,就像它们是一个表一样(您可以"将两个表联接为一个表").

您可以在此处阅读有关DBRef的更多信息:

解析引用有两种可能的解决方案.一种是手动操作,正如您所描述的.只需将一个文档的_id保存在另一个文档的_id中,然后编写自己的函数来解决关系.另一个解决方案是使用上面手册页面中描述的DBREF,这将使MongoDB按需解析关系. Select 哪种解决方案并不重要,因为这两种方法都将在客户端解析关系(请注意,SQL数据库在服务器端解析连接).

Mongodb相关问答推荐

MongoDB对两个串联数组进行排序

Select 筛选聚合中的嵌套字段

如何获取键值对的对象,其中值仅具有 mongoDB 中的投影字段

分组前的 MongoDb 聚合总数

判断对象数组中的值是否存在golang

在我的查询中使用 populate() 时的 MongoDB createIndex()

MongoID find 或 find_by

Mongo 删除最后的文件

解析命令行时出错:unrecognized option --rest

具有多个字段的mongodb文本搜索

Express 无法 PUT/DELETE 方法.出了什么问题?

如何使用 java 驱动程序更新 mongo db 中的文档字段?

如何将 mongoDB 数据导出为 CSV 格式?

无法从 javascript 打印 BSON 对象

如何从 node.js 以编程方式执行 mongodump 命令?

MongoDB 数据库,相当于 SELECT column1, column2 FROM tbl

mongodb 的计数性能

我如何将 mongodb 与electron一起使用?

无法从 mongodb 中删除集合

从 Grunt 任务中启动 MongoDB