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

संग्रह की सभी कुंजी कैसे प्राप्त करें जिसमें मोंगोडब में निश्चित (स्ट्रिंग) मान शामिल है

आप objectToArray . का उपयोग करके डेटा स्रोत में डेटा को फिर से आकार देकर ऐसा कर सकते हैं

चलाएं

db.collection.aggregate([
  {
    "$project": {
      "data": {
        "$objectToArray": "$$ROOT"
      }
    }
  },
  {
    $unwind: "$data"
  },
  {
    "$match": {
      "data.v": {
        $regex: "hello"
      }
    }
  }
])

एक और उन्नत संस्करण यहां यह डेटा को फिर से आकार देता है

db.collection.aggregate([
  {
    "$project": {
      "data": {
        "$objectToArray": "$$ROOT"
      }
    }
  },
  {
    $unwind: "$data"
  },
  {
    "$match": {
      "data.v": {
        $regex: "hello"
      }
    }
  },
  {
    $group: {//Grouping back and restructuring the data so that objectToArray will bring the original format easily.
      "_id": "$_id",
      data: {
        "$addToSet": {
          k: "$data.k",
          v: "$data.v"
        }
      }
    }
  },
  {
    "$project": {
      "data": {
        "$arrayToObject": "$data"
      }
    }
  }
])

arrayToObject . के दस्तावेज़ देखें और objectToArray , फिर $regex




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. TypeError के कारण अनुक्रमणिका नहीं बना सकता:प्रारूप स्ट्रिंग के लिए पर्याप्त तर्क नहीं

  2. एक अलग समय क्षेत्र पर साल-महीने-दिन के आधार पर कैसे एकत्रित करें

  3. क्या MongoDB में अब का कोई समतुल्य है?

  4. कुल पाइपलाइन में संग्रह से उप-दस्तावेज़ घटाएं

  5. सरल MongoDB क्वेरी बहुत धीमी है, हालांकि अनुक्रमणिका सेट है