我通过Node.Js在我的localhost中运行了两个模式。假设这两项服务是员工和员工薪酬。
localhost/emp
var EmpSchema = mongoose.Schema({
Emp_ID : Number,
Emp_Email_ID : String,
Emp_First_Name : String,
Emp_Last_Name : String,
});
localhost/empsalary
var EmpSalarySchema = mongoose.Schema({
Emp_ID : Number,
Emp_Monthly_Salary : Number,
Emp_Annual_Salary : Number
Emp_Loan_Detail : String,
});
我如何在获取方法中进行查询,以便获得Emp_Monthly_Salary和Emp_First_Name
答案 0 :(得分:2)
MongoDb是一个NoSQL数据库,它的一个限制是它不允许在一个查询中直接在集合之间创建JOIN。
解决此限制的典型方法:
查询一个集合并使用mongoose"填充"将其他集合中的数据添加到结果集的功能:http://mongoosejs.com/docs/populate.html(可能是您问题的首选解决方案)
重新构建您的数据,使其更符合您的典型查询(通常:允许一些冗余),因此如果您总是一起查询firstname和salary,您可能希望使用子文档将它们存储在一起:{{ 3}}
只使用两个查询并在node.js代码中手动执行JOIN
如果您的数据和查询确实需要大量的JOIN(非常关系),那么mongo可能不是您问题的正确选择(http://mongoosejs.com/docs/subdocs.html)