finById()
、select()
、find()
をマングースにすることはできますか?私はこのようなものを試していて、日付を受け入れず、代わりにfamilyStats
コレクション内のすべてのオブジェクトを返します。日付範囲内の配列ドキュメントを返す
module.exports.getFamilyStatsPast = function (req, res) {
var id = req.params.id;
var days = req.params.days;
var pastDate = new Date();
pastDate.setDate(pastDate.getDate() - days).toISOString();
var currentDate = new Date().toISOString();
Worksets
.findById(id)
.select('familyStats')
.find({
createdOn : {
$gte: pastDate,
$lte: currentDate
}
})
.exec(function (err, doc){
var response = {
status: 200,
message: []
};
if (err){
console.log("Error finding Workset");
response.status = 500;
response.message = err;
} else if(!doc){
console.log("Workset id not found in database", id);
response.status = 404;
response.message = {"message": "Workset Id not found."}
}
if(doc){
console.log("Found workset: ", doc);
res
.status(response.status)
.json(doc)
} else {
res
.status(response.status)
.json(response.message);
}
});
};
私は基本的に を取得しようとしています - ワークセットコレクションから配列がfamilyStats
と呼ばれる - その配列から、私は先週から今まででpastDate
とcurrentDate
の間に作成されたばかりのオブジェクトをしたいです。
私が間違っていることは何ですか?
ここに私のマングースデータスキーマです:
var familyStatsSchema = new mongoose.Schema({
suspectFamilies: [{
name: String,
size: String,
sizeValue: Number,
instances: Number,
elementId: Number
}],
totalFamilies: Number,
unusedFamilies: Number,
oversizedFamilies: Number,
inPlaceFamilies: Number,
createdBy: String,
createdOn: Date
});
var healthCheckSchema = new mongoose.Schema({
onOpened: [worksetEventSchema],
onSynched: [worksetEventSchema],
itemCount : [worksetItemSchema],
viewStats: [viewStatsSchema],
linkStats: [linksStatsSchema],
familyStats: [familyStatsSchema]
});
mongoose.model('Worksets', healthCheckSchema);
質問に答えられていないと思われる回答がありますか?もしそうなら、正確に答えなければならないものを明らかにするために答えにコメントしてください。実際にあなたが質問した質問に答えた場合は、[あなたの回答を受け入れる](https://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work)に質問してください。聞いてください。 –