以下是兩種貓鼬模式:如何通過標準找到子文檔+貓鼬/ MongoDB的
EmployeeSchema:
var EmployeeSchema = new Schema({
name : String,
employeeDetailsId: {
type: Schema.Types.ObjectId,
ref: 'employeedetails'
}
});
EmployeeDetailSchema:
var EmployeeDetailSchema = new Schema({
employeeId: {
type: Schema.Types.ObjectId,
ref: 'employee'
},
statusId: {
type: Schema.Types.ObjectId,
ref: 'status'
}
});
EmployeeDetailSchema數據獲取按需保存,例如當某個特定狀態分配給員工時。在這種情況下,一旦EmployeeDetail保存文檔則對應EmployeeDetailID保存回EmployeeSchema爲employeeDetailsId
現在有EmployeeSchema和EmployeeDetailSchema之間的雙向關係。
用例:
我想取誰的標籤與特定狀態的所有員工。說輸入狀態ID爲1234
然後我想要在EmployeeDetail文檔中獲取狀態ID爲1234
的所有員工。
下面是我嘗試使用貓鼬的辦法:即返回空數組雖然有誰被分配到一些狀態的員工
exports.getEmployeesByStatus = function (req, res) {
console.log('Status ID : ' + req.query.statusId);
EmployeeModel.find({'employeeDetailsId.statusId': {$eq: mongoose.Types.ObjectId(req.params.statusId)}})
.exec(function (err, result) {
if (err)res.send('400', {message: 'Unable to fetch employees data by status. Please try again later'});
res.jsonp(result);
});
};
結果。我對Mongoose的查詢方法正確嗎?
您使用的子文檔或使用員工詳細模型的參考價值爲'employeeDetailsId'? –
夫婦約MongoDB的其他很好的問題:通過標準查找子文檔:[一](http://stackoverflow.com/questions/16845191)和【二】(http://stackoverflow.com/questions/21142524)。認爲它可能會幫助其他人。 – BeingSuman