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

Grup Mongodb berdasarkan bidang menggunakan $substr

Ada solusi kotor tetapi berfungsi berdasarkan tautan ini http://www.kamsky.org/stupid-tricks-with-mongodb/ugly-way-to-parse-a-string-with-aggregation-framework Jadi, mengapa tidak?

Untuk menemukan posisi simbol dalam string, kita dapat membangun kondisi kompleks untuk memeriksa secara berurutan setiap simbol string untuk pencocokan simbol. Ini pada dasarnya mirip dengan cara kerja fungsi indexOf.

function indexOf(field, character) {
    var array = [];
    var maxPos = 50;
    var searchStart = 0;

    array[maxPos]={"$cond":{"if":{"$eq":[{"$substr":[field,maxPos,1]},character]},"then":maxPos+1,else:0}};

    for ( var i=maxPos-1; i>searchStart-1; i-- ) {
         array[i]={"$cond":{"if":{"$eq":[{"$substr":[field,i,1]},character]},"then":i,"else":array[i+1]}}
    }

    return array[searchStart];
}

Jadi, permintaan MongoDB Anda akan terlihat seperti ini:

db.images.aggregate([ <query> ,
             { $group: { _id: { $substr: ["$FileName", indexOf("$FileName", "_"), 999] }, files: { $push: "$$ROOT" } } },
             { $sort: { UploadDate : -1 } }
        ])



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. data pegas mongodb memetakan bidang dinamis

  2. Temukan postingan terbaru &terdekat, batasi 20

  3. Proyek sebagai dokumen bersarang di mongo musim semi

  4. Bisakah JSON $dates yang ketat digunakan dalam kueri MongoDB?

  5. Bagaimana cara menambahkan objek baru di dalam array bersarang untuk mongodb menggunakan node.js?