MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Получаване на първия ден от седмицата от номера на седмицата в mongodb

За mongo>=v3.4 вижте weekStart. Идеята е да изместите милисекунди от дадено времево клеймо

db.raw.aggregate([
         // stage 1
        { "$match" : {
            "Timestamp":{
                "$gte": ISODate("2012-05-30"), 
                "$lt": ISODate("2014-07-31")
            }
        }},

         // stage 2
        { "$project" : {

           ApplicationId: 1,
           Country: 1,
           week: {$isoWeek: "$Timestamp"},

           // [TRICK IS HERE] Timestamp - dayOfWeek * msInOneDay
           weekStart: { $dateToString: { format: "%Y-%m-%d", date: { // convert date
             $subtract: ["$Timestamp", {$multiply: [ {$subtract:[{$isoDayOfWeek: "$Timestamp"},1]}, 86400000]}] 
           }}},

         // stage 3
        { "$group" : {
        "_id":{ 
            "ApplicationId": "$ApplicationId",
            "Country": "$Country",
            "week": "$week"
        },
        "Date":{ "$first": "$weekStart" },
        "Visits": { "$sum": 1 }
        }}        
 ])


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Стратегии за публикуване/абониране на Meteor за уникални колекции от страна на клиента

  2. Как да групирате данни с помощта на mongo-шаблон

  3. Push операции в MongoDB

  4. динамично поле за картографиране на данни на mongodb

  5. Mongoose __v кога се променя