第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

MongoDB Mongoose 按多個字段分組并獲取計數(shù)

MongoDB Mongoose 按多個字段分組并獲取計數(shù)

慕的地8271018 2021-12-02 15:47:28
我有一個使用 MongoDB 編寫的分析 API。這是我的會話模型const sessionSchema = new Schema(  {    user: { id: Number, name: String, email: String },  },  { timestamps: true },);我想按日期計算唯一用戶數(shù)。對于 2019 年 10 月 24 日,可能有來自兩個用戶的 10 個會話(id 1,id 2)和對于 2019 年 10 月 25 日,可能有來自兩個用戶的 20 個會話(id 3,id 8)所以我的預期結果是2019-10-24 2 用戶2019-10-25 2 用戶我試過這個db.Session.aggregate([      {        $group: {          _id: { user: '$user.id', day: { $dayOfYear: '$createdAt' } },          count: { $sum: 1 },        },      },    ])這似乎不起作用。我的createdAt字段類型是Date(eg:- createdAt: 2019-10-16T13:11:17.935Z) 這就是為什么我使用$dayOfYear: '$createdAt'
查看完整描述

2 回答

?
慕后森

TA貢獻1802條經(jīng)驗 獲得超5個贊

db.Session.aggregate([

{

       $project: {

          date: { $dateToString: { format: "%Y-%m-%d", date: "$createdAt" } }


      }

  },

      {

        $group: {

          _id: "$date" ,

          count: { $sum: 1 }

        }

      }

    ]);


查看完整回答
反對 回復 2021-12-02
?
飲歌長嘯

TA貢獻1951條經(jīng)驗 獲得超3個贊

首先根據(jù)createdAt分組,因為我們想要根據(jù) createdAt 的最終結果。


在這個$group階段只需將userIds推入數(shù)組,使用$addToSet以保持它的唯一性。


然后$size在$projectstage 中使用operator 獲取 userIds 的計數(shù)。


你得到結果。


這是查詢。


(根據(jù)需要轉換日期,它只是一種格式,您已經(jīng)完成了此操作,因此我將跳過此任務)。


db.sessions.aggregate({$match:{}},

    {$group:{_id: "$createdAt",   userId : {$addToSet: "$user.id"}}},

    {$project:{_id: 1, noOfUsers:{$size:"$userId"}}}).pretty()

希望這可以幫助!


查看完整回答
反對 回復 2021-12-02
  • 2 回答
  • 0 關注
  • 485 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號