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. MongoDB Aggregation:合計レコード数を取得する方法は?

    2. MongoDBの新機能コマンドmongoを実行できません

    3. HadoopMapReduceのデータローカリティの概要

    4. クエリパラメータが機能しないGeoJSONポイントを使用したgeoNearへのMongoose呼び出し