MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Pobieranie pierwszego dnia tygodnia z numeru tygodnia w mongodb

Dla mongo>=v3.4 spójrz na weekStart.Ideą jest oddzielenie milisekund od podanego znacznika czasu

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. Brak pamięci w procesie MongoDB NodeJS

  2. Element aktualizacji Node.js w MongoDB

  3. MongoDB w PHP przy użyciu agregacji do grupowania według _id jest null nie działa

  4. Jak filtrować kolekcję na podstawie każdego elementu tablicy w polu dokumentu w Mongodb?

  5. Wkładka Java Mongodb 3.0Jeden