亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

MongoDB中15分鐘時間間隔的分組結果

MongoDB中15分鐘時間間隔的分組結果

尚方寶劍之說 2019-06-13 17:45:26
MongoDB中15分鐘時間間隔的分組結果我有一個像這樣的“身份”系列-{     _id: ObjectId("545a0b63b03dbcd1238b4567"),     status: 1004,     comment: "Rem dolor ipsam placeat omnis non. Aspernatur nobis qui nisi similique.",     created_at: ISODate("2014-11-05T11:34:59.804Z")},{     _id: ObjectId("545a0b66b03dbcd1238b4568"),     status: 1001,     comment: "Sint et eos vero ipsa voluptatem harum. Hic unde voluptatibus et blanditiis quod modi.",     created_at: ISODate("2014-11-05T11:35:02.814Z")}........我需要得到的結果分組15分鐘間隔從收集。
查看完整描述

3 回答

?
HUX布斯

TA貢獻1876條經驗 獲得超6個贊

我喜歡這里的另一個答案,主要是使用日期數學,而不是聚合日期運算符,這雖然有幫助,但也可能有點模糊。

我想在這里補充的唯一件事是,您也可以返回一個Date通過這種方法從聚合框架中獲取對象,而不是作為結果的“數值”時間戳。這只是在相同的原則上的一些額外的數學,使用$add:

db.collection.aggregate([
    { "$group": {
        "_id": {
            "$add": [
                { "$subtract": [
                    { "$subtract": [ "$current_date", new Date(0) ] },
                    { "$mod": [ 
                        { "$subtract": [ "$current_date", new Date(0) ] },
                        1000 * 60 * 15
                    ]}
                ] },
                new Date(0)
            ]
        },
        "count": { "$sum": 1 }
    }}])

這個Date(0)JavaScript中的結構以較短的形式表示相同的“劃時代”日期,因為距EURCH的0毫秒就是時代。但要點是,當使用數字標識符對另一個bson日期對象進行“加法”時,所描述條件的逆值為真,并且最終結果實際上是Date.

所有驅動程序都將返回本機Date用這種方法鍵入他們的語言。


查看完整回答
反對 回復 2019-06-13
?
12345678_0001

TA貢獻1802條經驗 獲得超5個贊

對于mongodb.version()<3.0來說,更漂亮一些

db.collection.aggregate([
    {$match: {created_at:{$exists:1}}},
    {$group: {
        _id: {$add:[
            {$dayOfYear: "$created_at" },
            {$multiply: [{$year: "$created_at"}, 1000]}
        ]},
        count: {$sum: 1 }
    }},
    {$sort:{_id:-1}}])


查看完整回答
反對 回復 2019-06-13
  • 3 回答
  • 0 關注
  • 1792 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號