我使用的是mongo的shell,我想做的基本上等同于“SQL的select col var”,然后使用var的值来查找同一个表或其他表中的其他行(Joins)。例如,在PL/SQL语言中,我将声明一个名为V_Dno的变量。我还有一个名为Emp(EID,Name,Sal,Dno)的表。我可以这样访问employee 100的Dno的值:"Select Dno into V_Dno from Emp where EID = 100)。在MongoDB中,当我找到所需的employee (使用其_id)时,我最终得到的是一个文档,而不是一个值(一个字段)。从某种意义上说,我得到的结果等同于SQL中的整行,而不仅仅是一列。我正在执行以下操作来查找给定的emp:
VAR V_Dno = db.emp.find ({Eid : 100}, {Dno : 1});
我之所以这样做是为了使用字段的值从一个文档遍历到另一个文档。我知道使用DBRef可以做到这一点,但我想看看是否可以使用这种方法将文档绑定在一起。有人能解释一下这件事吗?谢谢。
发布于 2014-01-16 20:19:33
find
返回一个允许您遍历匹配文档的游标。在本例中,您可能希望使用findOne
,因为它直接返回第一个匹配的文档,然后使用点表示法访问单个字段。
var V_Dno = db.emp.findOne({Eid : 100}, {Dno : 1}).Dno;
发布于 2017-03-09 17:54:15
使用您的查询作为起点:
var vdno = db.emp.findOne({Eid: 100, Dno :1})
这将从emp集合中返回一个文档,其中Eid = 100,Dno = 1。现在我在vdno变量中有了这个文档,我可以将它“联接”到另一个集合中。假设您有一个部门集合,部门集合中的一个文档对emp集合中的_id字段进行了手动引用。您可以使用以下内容根据变量中的值筛选部门集合中的结果。
db.department.find({"employee._id":vdno._id})
https://stackoverflow.com/questions/21171721
复制相似问题