0
임은 다음과 몽구스 스키마몽구스 집계 쿼리 건너 뛰는 게터
var schema = new mongoose.Schema({
subtotal: {type: Number, required: true, default: 0},
owner: { type : Number, required : true, index: true},
products: [{type: mongoose.Schema.ObjectId, ref: 'Product'}],
}, {
timestamps: true
});
schema.path('subtotal').set(function(p){
return p * 100;
});
schema.path('subtotal').get(function(p){
return parseFloat((p/100).toFixed(2));
});
schema.set('toJSON', {getters: true, setters:true});
schema.set('toObject', {getters: true, setters:true});
(예를 들어, 11.99) 예상대로 합계 값을 간단한 찾기 쿼리를 반환 실행이있다.
집계 쿼리를 실행할 때 소계 값은 100으로 나눌 수 없습니다.
Order.aggregate([
{ $match: { $and: [
{status: 'COMPLETE'},
{premises: mongoose.Types.ObjectId(premisesId)},
{createdAt:{
$gte: startOfToday,
$lt: endOfToday
}}
]}},
{
$group: {
_id: {hour: {$hour: "$createdAt"}},
count: { $sum: 1 },
sales: { $sum: '$subtotal'}
}
},
{
$sort: {
"_id.hour": 1
}
}
]).exec(function(err, orders){
//do something
})
예상되는 집계 동작입니까?
집계 쿼리가 강제로 getter를 실행할 수있는 방법이 있습니까?