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

mongodb में उप-दस्तावेज़ सरणी पर $regex के साथ $slice का उपयोग करना

आप $unwind के संयोजन का उपयोग कर सकते हैं और $match मोंगो के साथ एकत्रीकरण अपेक्षित आउटपुट प्राप्त करने के लिए जैसे:

db.collection.aggregate({
    $match: {
    "_id": "3691149613248"  // you can skip this condition if not required
    }
}, {
    $unwind: "$following"
}, {
    $match: {
    "following.content_id": {
        $regex: /^369/
    }
    }
}, {
    $group: {
    _id: "$_id",
    "following": {
        $push: "$following"
    }
    }
})

अगर आप लागू करना चाहते हैं छोड़ें और limit उपरोक्त क्वेरी के लिए तो आप इसे आसानी से उपयोग कर सकते हैं जैसे:

db.collection.aggregate({
    $match: {
    "_id": "3691149613248" //use this if you want to filter out by _id
    }
}, {
    $unwind: "$following"
}, {
    $match: {
    "following.content_id": {
        $regex: /^369/
    }
    }
}, {
    $skip: 4  // you can set offset here
}, {
    $limit: 3 // you can set limit here
}, {
    $group: {
    _id: "$_id",
    "following": {
        $push: "$following"
    }
    }
})

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

यदि आप 5.4 से कम PHP संस्करण का उपयोग कर रहे हैं तो क्वेरी इस प्रकार होगी:

$search = "369";
$criteria = array(array("$match" => array("_id" => "3691149613248")),
    array("$unwind" => "$following"),
    array("$match" => array("following.content_id" => array("$regex" => new MongoRegex("/^$search/")))),
    array("$skip" => 4), array("$limit" => 3),
    array("$group" => array("_id" => "$_id", "following" => array("$push" => "$following"))));
$collection - > aggregate($criteria);

यदि आप 5.3 से अधिक PHP संस्करण का उपयोग कर रहे हैं तो बस { . को बदलें और } [ . के साथ ब्रेसिज़ और ] क्रमशः।




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. विशिष्ट एम्बेडेड दस्तावेज़ ढूंढें और फ़ील्ड का उपयोग करके आगे विशिष्ट बनाएं

  2. Mongorestore का उपयोग करके MongoDB डेटाबेस को पुनर्स्थापित करें

  3. Mongodb में समानांतर सरणियों को अनुक्रमित करना

  4. नामांकित कुंजी के रूप में विशिष्ट उप दस्तावेज़ फ़ील्ड और आउटपुट की गणना करें

  5. MongoDB हाथ से पहले सभी क्षेत्रों को जाने बिना सभी क्षेत्रों को एकत्रित करता है