Bạn đã cân nhắc sử dụng một trong các cách tiếp cận sau đây chưa?
Tìm MAX timeStampField trong bộ sưu tập:
db.collectionName.ensureIndex( { "timeStampField": -1 } );
db.collectionName.find({},{"timeStampField":1}).sort({timeStampField:-1}).limit(1);
HOẶC:
Tìm MAX timeStampField , per user_id trong bộ sưu tập (nếu DB không được phân đoạn):
db.collectionName.group(
{ key: { "user_id" : 1 }
, initial: { maxTimeStamp : new Timestamp() }
, cond: { timeStampField : {$exists : true}, timeStampField : {$gt: new Timestamp()} }
, reduce: function(doc,out) {
if (out.maxTimeStamp < doc.timeStampField) {
out.maxTimeStamp = doc.timeStampField;
}
}
}
);