如何创建新的收集,使用计算数据从现有的集合的MongoDB
喜我希望创建一个新的集合,对于获得从现有的集合计算的数据,如何创建新的收集,使用计算数据从现有的集合的MongoDB
的样本数据
{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")}]}
创建新的收藏“Recent_MID”这个数据
{ "_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
}
回答:
使用$out 运营商创造新的集合,同时采用聚集
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()
以上是 如何创建新的收集,使用计算数据从现有的集合的MongoDB 的全部内容, 来源链接: utcz.com/qa/258111.html