2015-06-10 13 views
5

मुझे सॉर्टिंग के साथ डेटा प्रदर्शित करने में समस्या है। यहाँ मेरी क्वेरी,मोंगोस सॉर्टिंग

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

है मैं 252 लंबाई के बारे में डेटा है, और मेरा नवीनतम डेटा 9 जून 2015 है, तो मैं इस क्वेरी का उपयोग मैं केवल 2015/पिछले हफ्ते डेटा 5 जून से डेटा प्राप्त और नहीं नवीनतम मिल डेटा, लेकिन अगर मैं सॉर्टिंग का उपयोग नहीं कर रहा हूं, तो नवीनतम डेटा दिखाई देता है।

मैंने नीचे इस प्रश्न का उपयोग किया है लेकिन परिणाम बदल गया है।

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

कोई मदद? मैं नेवला v3 उपयोग कर रहा हूँ

- संपादित - यह मेरा गतिविधि स्कीमा/मॉडल

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

क्या आप हमें गतिविधि तालिका के लिए अपनी स्कीमा दिखा सकते हैं? –

उत्तर

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

प्रकार दिनांक स्ट्रिंग आदमी नहीं

+0

ओह, मैं देखता हूं, ताकि मोंगोज़ इसे सॉर्ट कर रहा था क्योंकि यह स्ट्रिंग है और इसे सॉर्ट नहीं कर रहा है क्योंकि यह एक तिथि है? कोई उपाय? धन्यवाद –

+0

जब आप डेटा सॉर्ट के बजाय स्ट्रिंग का उपयोग करते हैं तो डेटा को वर्णानुक्रमिक क्रम एबी सी के रूप में सॉर्ट करेगा ... इस तरह, क्योंकि यह – kaxi1993

+0

@BagusSantoso स्ट्रिंग है और क्योंकि आपने "टाइप: स्ट्रिंग" का उपयोग किया है, क्योंकि मूल रूप से '.toString()' को कॉल किया जाएगा भंडारण से पहले आप जो भी डेटा आपूर्ति करते हैं। किसी भी आरईपीएल में 'नई तिथि()। ToString() 'आज़माएं और देखें कि यह क्यों बुरा है। –

0

है यह स्वचालित रूप से createdAt और updatedAt पैदा करेगा

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);