2015-06-10 9 views
5

Verileri sıralama ile görüntülemede bir sorunum var. İşte benim sorgu,Mongoose Sorting

Activity.find({"user_id": sesUser._id}, {}, {offset: 0, limit : 5, sort:{createdAt:1}}, function (e,a){ 
    ... 
    }); 

olduğunu ben 252 uzunluğu hakkında veri var ve ben sadece en son olsun 5 Haziran 2015/geçen hafta verilerini veri almak ve bu sorguyu kullanırsanız benim son veriler Haziran 2015 9 veri, ancak sıralama kullanmıyorsanız, en son veri görüntülenir.

Bu sorguyu aşağıda kullandım ancak sonuç aynı çıkıyor.

Activity.find({"user_id" : sesUser._id}).sort("createdAt").exec(function(err,a){ 
    ... 
    }); 

Herhangi bir yardım? Ben

Gelincik v3 kullanıyorum - Düzenlenen - Bu

var mongoose = require('mongoose'); 

var Activity = mongoose.Schema({ 
    sender_id : {type: String, required: true }, 
    user_id : {type: String, required: true }, 
    product_id : {type: String, default : "" }, 
    type : {type: String, required: true }, 
    createdAt : {type: String, default : new Date()} 
}); 

module.exports = mongoose.model('Activity', Activity); 
+1

Bize etkinlik tablosuna ait şemanızı gösterebilir misiniz? –

cevap

4
`createdAt : {type: Date, default : new Date()}` 

Tip Tarihi dize adam

+0

Gördüğüm kadarıyla, mongoose onu tasnif ediyordu, çünkü bu bir dizeydi ve bir Tarih olduğu için onu sıralamak değil. herhangi bir öneri? Teşekkürler –

+0

Veri dizisi yerine String kullandığınızda, verileri alfabetik sıra ab c ... gibi sıralayacaktır. Bu, – kaxi1993

+0

@BagusSantoso dizgisi olduğundan ve "type: String" kullandığınız için temelde '.toString()' olarak adlandırılacaktır. depolamadan önce sağladığınız tüm veriler. Herhangi bir REPL'de yeni Date(). ToString() öğesini deneyin ve bunun neden kötü olduğunu görün. –

0

benim Aktivite Şeması/Model edilir otomatik createdAt ve updatedAt yaratacak

var options={ 
     timestamps: true 
} 

var Activity = mongoose.Schema({ 
    sender_id : {type: String, required: true }, 
    user_id : {type: String, required: true }, 
    product_id : {type: String, default : "" }, 
    type : {type: String, required: true } 

},options);