mongodb - 将 MongoDB 文档的字段值放入变量中

标签 mongodb shell find

我正在使用 mongo 的 shell 并想做基本上等同于“SQL 的 select col INTO var”的操作,然后使用 var 的值来查找同一个表或其他表中的其他行(连接)。例如,在 PL/SQL 中我将声明一个名为 V_Dno 的变量。我还有一个名为 Emp(EID, Name, Sal, Dno) 的表。我可以访问员工 100 的 Dno 值,如“从 Emp 中选择 Dno 到 V_Dno,其中 EID = 100”。在 MongoDB 中,当我找到所需的员工(使用其 _id)时,我最终得到一个文档而不是一个值(一个字段)。从某种意义上说,我得到的等效于 SQL 中的整行,而不仅仅是一列。我正在执行以下操作来查找给定的 emp:

VAR V_Dno = db.emp.find ({Eid : 100}, {Dno : 1});

我之所以要这样做是为了使用字段的值从一个文档遍历到另一个文档。我知道我可以使用 DBRef 做到这一点,但我想看看我是否可以使用这种方法将文档绑定(bind)在一起。 有人可以对此有所了解吗? 谢谢。

最佳答案

find 返回一个游标,让您可以遍历匹配的文档。在这种情况下,您会希望使用 findOne,因为它会直接返回第一个匹配的文档,然后使用点符号来访问单个字段。

var V_Dno = db.emp.findOne({Eid : 100}, {Dno : 1}).Dno;

关于mongodb - 将 MongoDB 文档的字段值放入变量中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21171721/

相关文章:

python - 使用 spark-commit 执行时导入 pymongo_spark 不起作用

c# - MongoDB、C# 和 NoRM + 非规范化

node.js - 使用命令扩展运行 NPM 脚本会在返回结果之前解析结果 - 与 bash 不同

linux - 在 "|"(管道)分隔文件的末尾添加新列

linux - 如何配置 find 命令在 Linux shell 脚本中运行?

linux - 使用 linux 终端检查文件是否在文件夹或其子文件夹中

node.js - "mpromise (mongoose' s 默认 promise 库)已弃用“测试时出现错误

mongodb - 不包含模式 {_id :hashed} 的 _id 或分片键

java - 使用 JSch 获取远程 bash shell,但自动完成功能不起作用

CakePHP:查找邻居,在 'name' 或 'order' 上订购