2015-11-10 7 views
5

मैं mongoose फ़िल्टर का उपयोग कर अपने mongoDB डेटाबेस से डेटा प्राप्त करने का प्रयास कर रहा हूं। परिदृश्य यह है कि डेटाबेस में प्रत्येक उपयोगकर्ता ऑब्जेक्ट में "क्षेत्र" या "सेक्टर" जैसे कुछ फ़ील्ड हैं।मोंगोज़ "कई खोजें"

वर्तमान में मैं तो जैसे वहाँ वस्तु के सभी उपयोगकर्ताओं के लिए उस कीवर्ड "क्षेत्र" शामिल हो रही है:

// Filter all healthcare bios by region 
app.get('/user',function(req, res) { 

// use mongoose to get all users in the database 
User.find({region: "NA"}, function(err, user) 
{ 
    // if there is an error retrieving, send the error. nothing after res.send(err) will execute 
    if (err) 
    { 
     res.send(err); 
    } 
    // return all todos in JSON format 
    console.log(user); 
    res.json(user); 

}); 
}); 

नेवला में कुछ शर्तें रख सकते हैं कैसे है कि यह उन है कि दोनों हो सकते हैं वापसी "क्षेत्र "& & उनकी वस्तुओं में" सेक्टर "। वर्तमान में यह केवल उस उपयोगकर्ता को लौट रहा है जिसमें क्षेत्र में कीवर्ड है।

मैंने $ और ऑपरेटर का उपयोग करने का प्रयास किया है लेकिन मैं इसे काम नहीं कर सका।

+0

मुझे वोट के लिए कोई कारण नहीं दिखता है। सवाल स्पष्ट है और इस बिंदु पर और मैंने आपको दिखाया है कि मैंने अब तक क्या किया है। – Skywalker

+0

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

उत्तर

13
app.get('/user',function(req, res) { 

User.find({region: "NA",sector:"Some Sector"}, function(err, user) 
{ 
    if (err) 
    { 
     res.send(err); 
    } 
    console.log(user); 
    res.json(user); 

}); 
}); 

यदि आप किसी भी क्षेत्र के साथ डेटा चाहते हैं: "एनए" या सेक्टर: "कुछ सेक्टर"। आप $or ऑपरेटर का उपयोग कर सकते हैं।

User.find({$or:[{region: "NA"},{sector:"Some Sector"}]}, function(err, user) 
{ 
    if (err) 
    { 
     res.send(err); 
    } 
    console.log(user); 
    res.json(user); 

}); 
+0

क्षमा चाहते हैं कि आपका उत्तर सही है। मैंने एक वाक्यविन्यास त्रुटि बनाई है। उत्तर के रूप में स्वीकार करेंगे। धन्यवाद। – Skywalker

+0

@ विष्णु, मैं क्षेत्र = 'एनएआर या क्षेत्र = 'कुछ क्षेत्र' के लिए खोज कैसे करूं? मैं हर जगह इस समाधान की तलाश में हूं। –

+0

@YuChen उत्तर – Vishnu

3

आप परिणाम है कि जब तक दोनों के रूप में किसी भी क्षेत्र या क्षेत्र में होते हैं एक ही समय आप अपने User.find में निम्न क्वेरी की जरूरत में मौजूद हैं चाहते हैं: {region: {$exists:true},sector: {$exists:true}}

,$and रूप में लंबे समय के बराबर है क्योंकि आप विभिन्न क्षेत्रों की खोज कर रहे हैं।

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