Java 如何使用现有集合mongodb中的计算数据创建新集合
嗨,我想创建一个新集合,从现有集合中获取计算数据 样本数据Java 如何使用现有集合mongodb中的计算数据创建新集合,java,json,mongodb,mongo-shell,Java,Json,Mongodb,Mongo Shell,嗨,我想创建一个新集合,从现有集合中获取计算数据 样本数据 {MID:100,stage:6, hustle:[{id:1,name:"jack",level:4,target:10,completedTime:new Date("2015-12-12")}, {id:1,name:"jack",level:4,target:10,completedTime:new Date("2015-12-12")}, {id:1,name:"jack",level:4,target
{MID:100,stage:6,
hustle:[{id:1,name:"jack",level:4,target:10,completedTime:new Date("2015-12-12")},
{id:1,name:"jack",level:4,target:10,completedTime:new Date("2015-12-12")},
{id:1,name:"jack",level:4,target:10,completedTime:new Date("2015-12-12")},
{id:1,name:"jack",level:4,target:10,completedTime:new Date("2015-12-12")},
{id:82,name:"Mario",level:2,target:8,completedTime:new Date("2015-12-15")},
{id:82,name:"Mario",level:2,target:8,completedTime:new Date("2015-12-15")},
{id:82,name:"Mario",level:2,target:8,completedTime:new Date("2015-12-15")},
{id:82,name:"Mario",level:2,target:8,completedTime:new Date("2015-12-15")}]}
使用此数据创建新集合“最近的”
{
"_id": 82,
"name": "Mario",
"level": 2,
"recentTIme": ISODate("2015-12-15T00:00:00Z"),
"accessCount": 4
} {
"_id": 1,
"name": "jack",
"level": 4,
"recentTIme": ISODate("2015-12-12T00:00:00Z"),
"accessCount": 4
}
使用
运算符在使用聚合时创建新集合
db.mid.aggregate([{
$unwind: "$hustle"
}, {
$group: {
_id: "$hustle.id",
name: {
$first: "$hustle.name"
},
level: {
$first: "$hustle.level"
},
recentTIme: {
$first: "$hustle.completedTime"
},
accessCount: {
$sum: 1
}
}
}, {
$out: "Recent_MID"
}]).pretty()
要创建新集合,请在聚合管道的末尾使用$out运算符