mongo 简单数据分析

背景:
user_last_access 用户最后访问时间集合
statistics_users:activeUserData(3天内登录),silentUserData(3~7天内登录),lostUsersData(7天以前登录)
目的:
statistics_users 中统计的用户集合 是 user_last_access 的全部数据

#准备测试集合
db.testIds.drop()
db.testIds.insert({"_id":1,ids1:[],ids2:[]})

#设置所有的userId - str1
var ids = db.user_last_access.find({},{_id:0,media_owner_id:1})
ids.forEach( function(i){ db.testIds.update({"_id":1},{$push:{ids1:i.media_owner_id}}) } )

#设置所有统计的userId - str2
var ids = db.statistics_users.aggregate([{"$match":{endTime:'2021-02-23 00:00:00'}},{"$project":{_id:0,union:{$setUnion:["$activeUserData","$silentUserData","$lostUsersData"]}}}])
ids.forEach( function(i){ db.testIds.update({"_id":1},{$set:{"ids2":i.union}}) } )

#查看差集
db.testIds.aggregate([{'$project':{diff:{$setDifference:["$ids1","$ids2"]}}}])


#查看所有未进去的用户
db.user_last_access.find({media_owner_id:{$in:  [] }})
此条目发表在mongo分类目录,贴了, 标签。将固定链接加入收藏夹。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

看不清?