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

इसके एक तार से पूरी सरणी प्राप्त करें। ऐरे दूसरे ऐरे के अंदर है। मोंगोडब/जावास्क्रिप्ट

एकत्रीकरण क्वेरी का उपयोग करना:

  • $match शर्त, नेस्टेड $ememMatch . डालें 2 स्तर की स्थिति के लिए
  • $reduce vid सरणी के लूप को पुनरावृत्त करने के लिए, प्रारंभिक [] सेट करें, स्थिति की जांच करें यदि वर्तमान सरणी में स्ट्रिंग है तो वर्तमान सरणी लौटाएं अन्यथा प्रारंभिक मान लौटाएं
let searchString = "adfsdfasfd";
db.collection.aggregate([
  {
    $match: {
      vid: { $elemMatch: { $elemMatch: { $in: [searchString] } } }
    }
  },
  {
    $addFields: {
      vid: {
        $reduce: {
          input: "$vid",
          initialValue: [],
          in: {
            $cond: [{ $in: [searchString, "$$this"] }, "$$this", "$$value"]
          }
        }
      }
    }
  }
])

खेल का मैदान

परिणाम:

[
  {
    "vid": [
      "adfsdfasfd",
      "this is some sample text",
      "https://example.com"
    ]
  }
]

खोज क्वेरी का उपयोग करना:

  • मिलान की स्थिति को ऊपर के समान रखें
  • प्रक्षेपण के लिए मैच परिणाम प्राप्त करें लेकिन एक ही नेस्टेड सरणी में
let searchString = "adfsdfasfd";
db.collection.find(
  { vid: { $elemMatch: { $elemMatch: { $in: [searchString] } } } }
).project({ "vid.$": 1, _id: 0 }).toArray()

खेल का मैदान

परिणाम:

[
  {
    "vid": [
      [
        "adfsdfasfd",
        "this is some sample text",
        "https://example.com"
      ]
    ]
  }
]



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB $लुकअप मान वापस ऐरे में:

  2. विंडोज़ 8 और वैंप सर्वर पर मोंगोडब PHP ड्राइवर कैसे स्थापित करें?

  3. मोंगोडीबी सी # डेफिनिशन बिल्डर का उपयोग कर दस्तावेज़ के भीतर एक सरणी में सभी मिलान करने वाले तत्वों को पुनर्प्राप्त करें

  4. Ops Manager के साथ MongoDB चलाना

  5. मोंगोडब में बिंदुओं की एक श्रृंखला वाले सभी बहुभुज खोजें