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

मोंगो में पोस्ट टैग कैसे कार्यान्वित करें?

यदि आपके द्वारा उपयोग किए जाने वाले टैग और उनके संबंधित स्लग बदलने की संभावना नहीं है, तो मुझे लगता है कि आपका दूसरा दृष्टिकोण बेहतर है। हालांकि मैं एक छोटे से बदलाव का सुझाव दूंगा - [name, slug] की एक सरणी को संग्रहीत करने के बजाय , इस उदाहरण में टैग उप-दस्तावेज़ बनाकर फ़ील्ड को स्पष्ट करें post दस्तावेज़:

{
    "_id" : ObjectId("4ee33229d8854784468cda7e"),
    "title" : "My Post",
    "content" : "This is a post with some tags",
    "tags" : [
        {
            "name" : "meta",
            "slug" : "34589734"
        },
        {
            "name" : "post",
            "slug" : "34asd97x"
        },
    ]
}

फिर आप डॉट नोटेशन . का उपयोग करके किसी विशेष टैग वाली पोस्ट के लिए क्वेरी कर सकते हैं इस तरह:

db.test.find({ "tags.name" : "meta"})

क्योंकि tags एक सरणी है, मोंगो पूरी तरह से सरणी के बजाय सरणी के किसी भी तत्व के खिलाफ क्वेरी से मेल खाने के लिए पर्याप्त चालाक है, और डॉट-नोटेशन आपको किसी विशेष फ़ील्ड के विरुद्ध मिलान करने की अनुमति देता है।

पोस्ट के लिए क्वेरी करने के लिए नहीं एक विशिष्ट टैग युक्त, $ne . का उपयोग करें :

db.test.find({ "tags.name" : { $ne : "fish" }})

और एक टैग वाली पोस्ट के लिए क्वेरी करने के लिए लेकिन दूसरे को नहीं, $and . का उपयोग करें :

db.test.find({ $and : [{ "tags.name" : { $ne : "fish"}}, {"tags.name" : "meta"}]})

आशा है कि यह मदद करेगा!




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. स्प्रिंग डेटा MongoDb $filter सरणी एकत्रीकरण ऑपरेटर का समर्थन करता है?

  2. MongoDB:खराब क्वेरी प्रदर्शन

  3. स्प्रिंग MongoDB क्वेरी छँटाई

  4. मोंगोडब में बाल वस्तुओं से कैसे पूछें?

  5. कुंजी नहीं होनी चाहिए। पाइमोंगो में त्रुटि