MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

Mongoskin के साथ प्रत्येक उत्पाद में फ़ील्ड विवरण में एक शब्द के माध्यम से एक MongoDB दस्तावेज़ ढूँढना

एक शब्द के माध्यम से खोजने के लिए, संग्रह में मौजूद सभी उत्पादों में विवरण फ़ील्ड में वह शब्द शामिल है, आपको केस असंवेदनशीलता के साथ एक रेगेक्स मैच की आवश्यकता है। आप निम्न क्वेरी का उपयोग कर सकते हैं (उदाहरण के तौर पर):

db.product.find({"data.description": /test/i});

जहां i /test/i . में केस असंवेदनशीलता को इंगित करता है, इस प्रकार रेगेक्स स्ट्रिंग के साथ किसी भी टेक्स्ट के लिए विवरण फ़ील्ड पर मेल खाता है "test" . समतुल्य SQL व्यंजक इस प्रकार है:

select * from product where description like '%test%'

तो आप ढूंढें () findOne() जो सिर्फ एक दस्तावेज़ लौटाता है:

app.get("/description/:id", auth, function(req, res, next) {
    req.collection.find({
        "data.description": /req.params.id/i
    }, function(e, result) {
        if(e) return next(e);
        res.send(result);
    });
});

एक अन्य विकल्प $text ऑपरेटर आपके खोज ऑपरेशन में है क्योंकि यह टेक्स्ट इंडेक्स के साथ अनुक्रमित फ़ील्ड की सामग्री पर टेक्स्ट खोज करता है। तो पहली चीज जो आप करेंगे वह है विवरण क्षेत्र पर एक टेक्स्ट इंडेक्स बनाना:

db.collection.createIndex( { "data.description": "text" } )

उसके बाद आप $text ऑपरेटर का उपयोग करके क्वेरी कर सकते हैं। उदाहरण के लिए, निम्न क्वेरी कॉफ़ी शब्द की खोज करती है:

db.collection.find( { $text: { $search: "coffee" } } )

संपादित करें :

सभी चीजें समान होने के कारण, आप इसके बजाय URL में क्वेरी स्ट्रिंग्स का उपयोग करने के लिए अपने रूट कार्यान्वयन को अपडेट कर सकते हैं:

app.get("/description", auth, function(req, res, next) {
    req.collection.find({
        $text: { $search: req.params.q }
    }, function(e, result) {
        if(e) return next(e);
        res.send(result);
    });
});

जिसे आप अपने ब्राउज़र में http://localhost/description?q=product . के रूप में क्वेरी कर सकते हैं




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. $अनविंड के बिना $लुकअप एकाधिक स्तर?

  2. MongoDB प्रतिकृति सेट कोई प्राथमिक नहीं है, नए प्राथमिक को बाध्य करने की आवश्यकता है

  3. Django सत्र

  4. डेटाटाइम के साथ मोंगोडीबी/पायमोंगो क्वेरी

  5. संग्रह का उपयोग कर पाइमोंगो में नेस्टेड प्रश्न। ढूंढें ()