2011-12-05 9 views
16

मैं Sequelize के साथ यह कैसे कर सकता हूं?कई श्रेणियों के साथ पंक्तियों को कैसे ढूंढें, खंड और टाइमस्टैम्प> अब()

SELECT FROM sessions WHERE user_id = ? AND token = ? AND expires > NOW() 

यहाँ मुझे क्या करना (मान Session है एक Sequelize मॉडल) कोशिश कर रहा हूँ है:

Session.find({ 
    where: { 
     user_id: someNumber, 
     token: someString, 
     //expires > NOW() (how do I do this?) 
    } 
}).on('success', function (s) { /* things and stuff */ }); 

धन्यवाद!

उत्तर

22

क्या आपने अनुक्रमकों में सरणीकरण की सरणी नोटेशन का उपयोग करने का प्रयास किया था? http://sequelizejs.com/?active=find-objects#find-objects

आशा इस काम करता है:

Session.find({ 
    where: ['user_id=? and token=? and expires > NOW()', someNumber, someString] 
}).on('success', function (s) { /* things and stuff */ }); 

आप इस पृष्ठ चेकआउट कर सकते हैं। अन्यथा यह एक बग है: डी

+0

आह, मेरा बुरा ... मुझे लगता है कि मुझे नहीं पता था आप एक से अधिक प्रतिस्थापन हो सकता था उस विधि का उपयोग कर। धन्यवाद! – lakenen

+0

कोई समस्या नहीं :) आपका स्वागत है! – sdepold

+0

क्या आप http://stackoverflow.com/a/29952136/494954 पर देख सकते हैं? :) – lakenen

1

एक अन्य विधि:

Session.find({ 
    where: { 
    user_id: someNumber, 
    token: someString, 
    expires: { 
     $gt: (new Date()) 
    } 
    } 
}).on('success', function (s) { /* things and stuff */ }); 
2

कृपया ध्यान दें कि इस पोस्टिंग और sequelize का नवीनतम संस्करण के रूप में, इसके बाद के संस्करण जवाब पुराने हो चुके हैं। मैं समाधान पोस्ट कर रहा हूं कि मैं किसी को कुछ समय बचाने की उम्मीद में काम कर रहा हूं।

filters["State"] = {$and: [filters["State"], {$not: this.filterSBM()}] }; 

JSON ऑब्जेक्ट और कमी के अंदर $ और सरणी नोट करें? टोकन प्रतिस्थापन।

या एक अधिक सामान्य तरीके से रखा, के बाद से है कि मदद कर सकता है किसी को इसके चारों ओर अपने सिर लपेटो:

{ $and: [{"Key1": "Value1"}, {"Key2": "Value2"}] } 
+0

मुझे स्वीकृत उत्तर बदलने में खुशी है, लेकिन मेरे पास अभी इस परीक्षण का समय नहीं है। शायद अगर @ddepold में झुकना चाहता है? – lakenen

संबंधित मुद्दे