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

MongoDB में, यदि एक स्ट्रिंग फ़ील्ड में दूसरा शामिल है, तो उसके आधार पर क्वेरी कैसे करें

आप इसे $where . के साथ कर सकते हैं एक RegExp बनाकर string1 . के लिए और उसके बाद string2 . के विरुद्ध इसका परीक्षण करना :

db.test.find({$where: 'RegExp(this.string1).test(this.string2)'})

हालाँकि, यदि आप MongoDB 3.4+ का उपयोग कर रहे हैं, तो आप $indexOfCP एग्रीगेशन ऑपरेटर:

db.test.aggregate([
    // Project  the index of where string1 appears in string2, along with the original doc.
    {$project: {foundIndex: {$indexOfCP: ['$string2', '$string1']}, doc: '$$ROOT'}},
    // Filter out the docs where the string wasn't found
    {$match: {foundIndex: {$ne: -1}}},
    // Promote the original doc back to the root
    {$replaceRoot: {newRoot: '$doc'}}
])

या अधिक सीधे $redact . का उपयोग करके भी :

db.test.aggregate([
    {$redact: {
        $cond: {
            if: { $eq: [{$indexOfCP: ['$string2', '$string1']}, -1]},
            then: '$$PRUNE',
            else: '$$KEEP'
        }
    }}
])



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. यूटीसी टाइमज़ोन के साथ आज तक आईएसओ 8601 तारीख स्ट्रिंग पार्स करें

  2. मोंगोडब में किसी अन्य क्वेरी में पिछली क्वेरी के परिणाम का उपयोग करें

  3. MongoDB - एक दस्तावेज़ बनाएँ

  4. क्या मैं मोंगोडीबी में दायर नाम के रूप में चर का उपयोग करते समय एम्बेडेड दस्तावेज़ पर '$ सेट' का उपयोग कर सकता हूं?

  5. स्प्रिंग डेटा मोंगोडब मोंगोडब कनेक्शन बंद नहीं कर रहा है