我有两个schema通过Node.Js在我的本地主机上运行。假设这两个服务是Employee和Employee Salary。
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,
});
我如何需要查询get方法这样我得到Emp_Monthly_Salary和Emp_First_Name
MongoDb是一个NoSQL数据库,它的一个限制是它不允许在一个查询中直接在集合之间进行join。
绕过此限制的典型方法:查询一个集合,并使用猫鼬"填充"功能从其他集合添加数据到结果集:http://mongoosejs.com/docs/populate.html(可能是您的问题的首选解决方案)
重塑你的数据,使其更适合你的典型查询(通常:允许一些冗余),所以如果你总是查询名字和工资在一起,你可能想要存储在一起使用子文档:http://mongoosejs.com/docs/subdocs.html
只需使用两个查询并在node.js代码中手动执行join
如果您的数据和您的查询确实需要大量的join(非常相关),mongo可能不是您问题的正确选择(http://docs.mongodb.org/manual/faq/fundamentals/)