MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Menggunakan $slice dengan $regex bersama-sama pada array subDocument di mongodb

Anda dapat menggunakan kombinasi $unwind dan $match dengan mongo agregasi untuk mendapatkan hasil yang diharapkan seperti:

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"
    }
    }
})

Jika Anda ingin menerapkan lewati dan limit untuk permintaan di atas maka Anda dapat dengan mudah menggunakannya seperti:

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"
    }
    }
})

EDIT :

Jika Anda menggunakan php versi kurang dari 5.4 maka query akan seperti:

$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);

Jika Anda menggunakan PHP versi lebih besar dari 5.3 maka ganti saja { dan } kurung kurawal dengan [ dan ] masing-masing.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Unggah dan Ambil File Menggunakan MongoDB dan Spring Boot

  2. Temukan semua objek dalam koleksi Java Mongodb

  3. Spring data mongodb - integrasi kerangka kerja agregasi

  4. Bekerja dengan karakter khusus dalam koleksi Mongo

  5. MongoDB $cos