2012-05-29 12 views
15

मैं एकाधिक स्थितियों वाले तालिका को कैसे क्वेरी करूं? यहाँ उदाहरण दोनों काम कर रहे हैं:node.js sequelize: एकाधिक 'कहां' क्वेरी स्थितियां

Post.findAll({ where: ['deletedAt IS NULL'] }).success() 

और

Post.findAll({ where: {topicId: req.params.id} }).success() 

फिर, अगर मैं संयुक्त की स्थिति की जरूरत है, मुझे लगता है जैसे मैं

Post.findAll({ where: [{topicId: req.params.id}, 'deletedAt IS NULL'] }).success() 

की तरह कुछ करने की जरूरत है, लेकिन यह काम नहीं करता
अनुक्रमित वाक्यविन्यास क्या है?

नोड डिबग का कहना है:

DEBUG: TypeError: Object # has no method 'replace'

अगर यह मायने रखती है ...

उत्तर

3

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

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

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

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

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

बस कार्य करें:

Post.findAll(
    { where: ["topicId = ? AND deletedAt IS NULL", req.params.id] } 
).success() 

या आप एक की जरूरत है या क्वेरी करते हैं?

+0

इसकी कोशिश करते हैं और है कि मैं की जरूरत है, और आपका समाधान पूरी तरह से मेरी जरूरतों को फिट करता है, इसलिए धन्यवाद। – Masquer

+0

मुझे यह कहना चाहिए कि आपने वहां क्या किया है, मैं खुद ऐसा क्यों नहीं कर सकता था?) लेकिन यह कामकाज की तरह अधिक महसूस करता है, मैं अभी भी उत्सुक हूं कि दोनों स्थितियों में पैरामीटर होने पर मैं क्या करूँगा? या अगर और अधिक स्थितियां होंगी? Sequelize मैनुअल के पास ऐसे मामलों पर कुछ भी नहीं है ... – Masquer

+0

एनवीएम, मुझे अभी पता चला है कि '?' के लिए बाद में कई पैरामीटर उपलब्ध कराए जा सकते हैं। फिर से धन्यवाद) – Masquer

20

आप कर सकते हैं:

Post.findAll({ where: {deletedAt: null, topicId: req.params.id} }) 

जो btw deletedAt IS NULL

में अनुवाद किया जा सकता है, अगर आप deletedAt NOT IS NULL की जरूरत है, उपयोग करें:

Post.findAll({ where: {deletedAt: {$ne: null}, topicId: req.params.id} }) 
+0

कृपया एकाधिक उत्तरों की जांच के लिए अपना उत्तर अपडेट करें, दिखाएं केवल एक शर्त दिखा रही है जहां उसे संख्या और शून्य की जांच करने की आवश्यकता है। –

0

नए संस्करण में इस

Post.findAll({ 
    where: { 
    authorId: 12, 
    status: 'active' 
    } 
}).then(function (data) { 
    res.status(200).json(data) 
      }) 
    .catch(function (error) { 
       res.status(500).json(error) 
    });; 
संबंधित मुद्दे