sql >> データベース >  >> NoSQL >> MongoDB

投影法を使用して日付をフォーマットし、現地時間を取得するMongoDBシェルスクリプト

    「toLocaleString()」を直接使用することはできません。ただし、オフセットを追加することはできます。

    1)3番目のパイプラインはオフセットを追加するために使用されます

    2)4番目のパイプラインは、日付をフォーマットするために使用されます

    var tzOffset = 5.5 * 1000 * 60 * 60;
    
    db.MyCollection.aggregate( [
       { "$match": { "ProjectID" : 999 } },
       { "$sort": { "CreatedDate": -1 } },
       {          
          $project: {
             localTime: {
                $let: {
                   vars: {
                       "localTime": { "$add": [ "$DueDate", tzOffset]
    
                    }
                   },
                   in: { $add: ["$$localTime"] }
                }
             }
          }
       },
       {          
          $project: {
             "_id": 0, 
             "formattedLocalTime": {
                    "$dateToString": { 
                        "format": "%Y-%m-%d %H-%M", 
                        "date": "$localTime"
                    }
                }
          }
       }
    
    ]);
    

    入力:-

    "DueDate" : ISODate("2016-08-11T10:17:09.203Z")
    "DueDate" : ISODate("2016-08-11T23:16:09.203Z")
    

    出力:-

    "formattedLocalTime" : "2016-08-11 15-47"
    "formattedLocalTime" : "2016-08-12 04-46"
    

    出力2に注意してください。次の日付が正しく入力されます。




    1. mongodbで$and演算子を使用する方法-Javaドライバー

    2. mongo PHPアプリエラー:致命的なエラー:キャッチされない例外'MongoException'とメッセージ''。 'キーでは許可されていません

    3. MongoDBで多くのドキュメントを挿入または更新します

    4. graphqlでマングースが必要ですか?