MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Mendapatkan hari pertama dalam seminggu dari nomor minggu di mongodb

Untuk mongo>=v3.4, lihat weekStart. Idenya adalah untuk mengurangi milidetik dari Timestamp yang diberikan

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. Memecahkan masalah Cluster Sharded MongoDB

  2. Instance Mongo mana di Replica Set yang dipanggil oleh aplikasi?

  3. Bagaimana cara meminta MongoDB untuk menguji apakah suatu item ada?

  4. Bagaimana saya bisa menentukan urutan alami di MongoDB?

  5. Node MongoDb { err:'koneksi ke [127.0.0.1:27017] habis waktu' }