MongoDB - 手册参考示例

2024-05-05

我正在读手册参考 http://docs.mongodb.org/manual/reference/database-references/#document-referencesMongoDB 数据库参考文档的一部分,但我不太理解“解析引用字段的第二个查询”的部分。你能给我一个这个查询的例子吗,这样我就可以更好地了解他们在说什么。

“手动引用是指将一个文档的 _id 字段包含在另一个文档中的做法。然后应用程序可以发出第二个查询来根据需要解析引用的字段。”


您所指的手册部分中的文档非常清楚,这是关于数据库参考 http://docs.mongodb.org/manual/reference/database-references/。理解这一点最重要的部分包含在该页面的开场白中:

“MongoDB 不支持联接。在 MongoDB 中,某些数据是非规范化的,或者与文档中的相关数据一起存储,以消除联接的需要。但是,在某些情况下,将相关信息存储在单独的文档中是有意义的,通常是在不同的集合或数据库中”。

进一步的信息涵盖了您如何might选择处理访问存储在另一个集合中的数据。

有的是DBRef http://docs.mongodb.org/manual/reference/database-references/#dbref规范,无需详细说明,may在某些驱动程序中实现的方式是,当在文档中找到这些文档时,它们会自动将引用的文档检索(扩展)到当前文档中。这将通过对该集合的另一个查询来“在幕后”实现该 _id 的文档。

如果是手册参考 http://docs.mongodb.org/manual/reference/database-references/#document-references这基本上是说,您的文档中只有一个字段,其内容为ObjectId来自另一个文档。这只与 DBRef 不同,因为它会never由基本驱动程序实现处理将如何处理其他文档的任何进一步检索完全取决于您。

如果是:

> db.collection.findOne()

{
   _id: <ObjectId>,
   name: "This",
   something: "Else",
   ref: <AnotherObjectId>
}

The ref文档中的字段只不过是一个普通的 ObjectId,没有什么特殊的作用。这允许您做的是提交您自己的查询来获取它所引用的对象详细信息:

> db.othercollection.findOne({ _id: <AnotherObjectId > })
{
  _id: <ObjectId>
  name: "That"
  something: "I am a sub-document to This!"
}

请记住,所有这些过程都是通过驱动程序 API 在客户端进行的。无论如何,服务器上都不会发生获取其他文档的情况。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MongoDB - 手册参考示例 的相关文章

随机推荐

  • 对 IIS 服务器上托管的 .NET CORE 2.1 应用程序进行一次 AJAX 调用后,会话状态被清除或丢失

    我遇到了这个问题 我已经挠头好几个小时了 问题 我创建的会话状态Login拨打电话后神秘清除或丢失API NET CORE 2 1 中也包含控制器 当我打电话时会发生这种情况API方法看起来像 Authorize Policy AdminV
  • createSpy 在 Angular + Jasmine 中如何工作?

    我做了一个简单的工厂演示 我正在尝试使用jasmine 我能够运行测试 但我正在使用spyOn方法 我宁愿使用茉莉花 createSpy or 茉莉花 createSpyObj做同样的测试 有人可以帮助我重构我的代码 以便在我的示例中使用这
  • 将 cookie 设置为在会话结束时过期? ASP.NET

    我很惊讶我找不到任何答案 如何将 cookie 中的 sessionid 设置为在会话结束时过期 当浏览器关闭或用户一段时间不活动时 我发现的两个解决方案是 httpcookie Expires HttpContext Current Se
  • VS Code 自动保存文件历史记录/撤消[重复]

    这个问题在这里已经有答案了 vscode 的自动保存功能非常方便 但有时会有点麻烦 如果有一种方法可以查看自动保存的文件的先前版本 这将非常有用 VS Code 有这样的功能吗 VSCode 1 66 2022 年 3 月 无需扩展 现在它
  • 如何在 Groovy 2.3 中使用 @SourceURI 注释检索脚本文件的完整路径?

    我需要在运行时检索 Groovy 2 3 中脚本文件的完整路径 实际上我遇到了与这里描述的问题相同的问题 在运行时获取 groovy 源文件的路径 https stackoverflow com questions 11958185 get
  • 如何用Python从网站中提取表格

    Here http www ffiec gov census report aspx year 2011 state 01 report demographic msa 11500 这里有张桌子 我的目标是提取表格并将其保存到 csv 文件
  • 如何在iOS SDK中使用语音识别? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我知道 SIRI 服务没有公共 API 但是有没有简单的语音识别 API 因此 如果我有一个文本字段并且
  • C# 中从一个字符到另一个字符的子字符串

    如何获取从一个特定字符到另一个特定字符的子字符串 例如 如果我有这种格式 string someString 1 7 2015 05 21T09 18 58 我只想得到这部分 2015 05 21T09 18 58 我如何使用子字符串 字符
  • OSError:[Errno 'jupyter-notebook' 未找到] 2

    您好 我已经安装了 Anaconda3 4 3 1 Windows x86 64 在我的桌面上 但运行命令时出现以下错误 Jupyter笔记本 来自命令提示符 Error C Users my pc gt jupyter notebook
  • 正则表达式获取“-”之前的所有字符

    如何获取字符之前的字符串 使用正则表达式 例如 我有 text 1 我想回来 text 所以我看到了实现这一目标的许多可能性 string text Foobar test 正则表达式 匹配所有内容 直到第一个 Match result R
  • 如何从服务器控件中删除“名称”属性?

    asp net端的控制代码如下
  • Postgres: \copy 语法

    使用 CentOS 7 上的 PostgreSQL 9 5 我创建了一个名为sample还有几张桌子 我有 csv数据输入 home MyUser data对于每张桌子 例如 存在TableName csv用于餐桌 TableName 如何
  • 如何获取表的模式名称

    我正在使用 SQL Server 2008 并有以下查询 SELECT SO1 name AS Tab SC1 name AS Col SO2 name AS RefTab SC2 name AS RefCol FO name AS FKN
  • 在 Ubuntu 上运行独立的 ASP.NET Core 应用程序

    我已经发布了一个 ASP NET Core 应用程序作为针对 Ubuntu 的独立应用程序 发布似乎工作正常 我已将这些文件复制到一台漂亮的 Ubuntu 机器上 现在 我如何运行我的应用程序 我的理解是 因为它是一个独立的 NET Cor
  • 在 R 中不循环地对连续的列表元素对应用函数

    我试图找到一种有效的 即避免使用循环 方法来应用一个函数 该函数迭代地将列表的当前和前一个 或下一个 元素作为参数 并返回结果列表 其长度必然是短 1 个元素 作为一个具体的例子 我有一个在某些图中定义路径的顶点列表 vlist lt c
  • Flex - 自动调整数据网格大小的问题

    我正在尝试创建一个数据网格 它将垂直调整大小以确保所有渲染器完整显示 此外 渲染器的高度可变 渲染器可以自行调整大小 一般来说 事件的流程如下 项目渲染器之一会自行调整大小 通常响应用户单击等 它调度父数据网格拾取的冒泡事件 DataGri
  • 如何在 Angular 2 中封装动态添加的元素?

    尝试让 MDL 与 Angular2 一起工作 通过 Shadow DOM 模拟 Angular 封装了从代码中获得的所有 CSS 和 html 但是当我使用componentHandler upgradeElement 它创建没有封装的新
  • 在二进制 R 包中包含测试

    我在用testthat为我的 R 包编写单元测试 我见过一些软件包作者 比如来自Rcpp and ggplot2 使用二进制文件分发单元测试 但是 当我使用 RStudio 0 98 1102 构建包时devtools 1 7 0 test
  • 从 Spring 4.1.6 升级到 4.2.4 突然出现 TransactionRequiredException

    我已经从 4 1 6 Release 升级到最新的 Spring 版本到 4 2 4 Release 突然之间 之前运行顺利的所有功能现在抛出以下异常 javax persistence TransactionRequiredExcepti
  • MongoDB - 手册参考示例

    我正在读手册参考 http docs mongodb org manual reference database references document referencesMongoDB 数据库参考文档的一部分 但我不太理解 解析引用字段