如何创建新的收集,使用计算数据从现有的集合的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

回到顶部