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

Luwak - temukan pesan terakhir dari setiap pengguna

Gunakan kerangka kerja agregasi di mana tahapan pipa Anda memiliki $match , $sort , $group dan $project ekspresi:

Message.aggregate(
    [
        // Matching pipeline, similar to find
        { 
            "$match": { 
                "to": req.user.username
            }
        },
        // Sorting pipeline
        { 
            "$sort": { 
                "created": -1 
            } 
        },
        // Grouping pipeline
        {
            "$group": {
                "_id": "$from",
                "message": {
                    "$first": "$message" 
                },
                "created": {
                    "$first": "$created" 
                }
            }
        },
        // Project pipeline, similar to select
        {
             "$project": { 
                "_id": 0,
                "from": "$_id",
                "message": 1,
                "created": 1
            }
        }
    ],
    function(err, messages) {
       // Result is an array of documents
       if (err) {
            return res.status(400).send({
                message: getErrorMessage(err)
            });
        } else {
            res.json(messages)
        }
    }
);

Jika req.user.username = "admin" , dengan koleksi sampel Anda maka hasilnya adalah:

{
    "result" : [ 
        {
            "message" : "message4",
            "created" : "2015-04-01T11:59:21.005Z",
            "from" : "user2"
        }, 
        {
            "message" : "message5",
            "created" : "2015-04-01T11:59:29.971Z",
            "from" : "user1"
        }
    ],
    "ok" : 1
}



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. menulis sintaks mongoDB

  2. Ketika saya mencoba menggunakan Hibernate ogm dan spring boot, konsol memberikan Tidak dapat membuat instance kesalahan kelas strategi yang disebutkan

  3. Saat menyimpan koleksi, MongoDB membuat nama Indeks yang terlalu panjang dan melebihi batas 127 byte. Bagaimana memecahkan ini. dapatkah saya menonaktifkan pengindeksan?

  4. Nodejs + mongodb :Bagaimana cara menanyakan bidang $ref?

  5. Cara memperbaiki MongoError:Tidak dapat menggunakan sesi yang telah berakhir