MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Mongoose - tìm tin nhắn cuối cùng từ mỗi người dùng

Sử dụng khung tổng hợp trong đó các giai đoạn đường ống của bạn có $match , $sort , $group $project biểu thức:

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

Nếu req.user.username = "admin" , với bộ sưu tập mẫu của bạn thì kết quả là:

{
    "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. Không thể kết nối Mongo shell với Mongo Atlas M0 bằng mongodb + srv

  2. Làm cách nào để cập nhật một tài liệu nhúng trong một tài liệu nhúng trong mongoose?

  3. Kiểm tra xem một Chỉ mục có tồn tại trong mongodb hay không

  4. Trình điều khiển C # MongoDB - Làm thế nào để sử dụng UpdateDefinitionBuilder?

  5. Mongoose - Không thể tạo nhiều hơn 4 trường bằng cách sử dụng `findOrCreate`