gpt4 book ai didi

java - 如何使用现有集合 mongodb 中的计算数据创建新集合

转载 作者:行者123 更新时间:2023-11-30 06:51:39 26 4
gpt4 key购买 nike

您好,我希望创建一个新集合,以便从现有集合中获取计算数据,

示例数据

{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()

关于java - 如何使用现有集合 mongodb 中的计算数据创建新集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42657232/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com