خرید بک لینک

Vote count: 1

I am new in MongoDB world.

I've following data in my collection

{ 
    "_id" : ObjectId("5735d8d4d147aa34e440988f"), 
    "DeviceLogId" : "26962", 
    "DeviceId" : "10", 
    "UserId" : "78", 
    "LogDateTime" : ISODate("2016-05-12T07:52:44.000+0000")
}
{ 
    "_id" : ObjectId("5735d8d4d147aa34e4409890"), 
    "DeviceLogId" : "26963", 
    "DeviceId" : "10", 
    "UserId" : "342", 
    "LogDateTime" : ISODate("2016-05-12T07:54:09.000+0000")
}
{ 
    "_id" : ObjectId("5735d8d4d147aa34e4409891"), 
    "DeviceLogId" : "26964", 
    "DeviceId" : "10", 
    "UserId" : "342", 
    "LogDateTime" : ISODate("2016-05-12T07:54:10.000+0000")
}
{ 
    "_id" : ObjectId("5735d8d4d147aa34e4409892"), 
    "DeviceLogId" : "26965", 
    "DeviceId" : "10", 
    "UserId" : "78", 
    "LogDateTime" : ISODate("2016-05-12T07:54:27.000+0000")
}

I want to query DeviceId of each user with maximum LogDateTime using group by.

I've written group by query like below but have no idea how would I get DeviceLogId for each record.

collectionName.aggregate(
        [{
            $match: { LogDateTime: { $gt: todaysDateStart, $lt: todayDateEnd } }
        }, {
            $group: {
                _id: "$UserId",
                maxPunchTime: { $max: { $add: [ "$LogDateTime", 330*60000 ] } },
            }
        }])

In MSSQL, I could easily do it with nested query but I've no idea how would I achieve that in MongoDB.

Thanks in advance.

asked 1 min ago

برچسب: نویسنده: استخدام کار تاريخ: شنبه 25 ارديبهشت 1395 ساعت: 19:01

صفحه بندی