var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var Config = require('../Config');
var serviceAvailability = new Schema({
agentId: {type: Schema.ObjectId, ref: 'agentProfile', required: true},
availabilityDate: {type: Date, required: true},
availabilityTime: {type: Array, required: true}
});
serviceAvailability.index({agentId:1 , availabilityDate:1},{unique:true});
module.exports = mongoose.model('serviceAvailability', serviceAvailability);
控制器:
Models.serviceAvailability.find({'agentId':'abcd'}, function (err, service) {
console.log(service);
if(service) {
callback(err , service);
}
else {
callback(err);
}
});
我試圖得到一些條件的所有數據一樣,如果的agentId等於某個值,但每當我使用任何標準來查找數據時,我會得到空數組,而如果我刪除條件並查找所有數據,那麼我正在獲取數據,爲什麼會這樣呢?
你檢查如果'Models.agentProfile.findByI d('abcd')'產生一個結果? – robertklep
那麼「abcd」不是'ObjectId'。您需要輸入一個有效的ObjectId值或至少等於返回的十六進制值的字符串。或者你似乎試圖匹配「agentProfile」對象中的「字段」,而後者是不可能的。不是沒有填充和手動過濾。 –
abcd只是告訴你一個例子,在實際我發送適當的ObjectId, 和是的,我試着在mongo終端的所有相同的查詢,然後從mongo終端工作正常@robertklep –