mogodb查询-将list字段数据进行转换(统计个数, 拆分成一个个记录)
mogodb查询-将list字段数据进行转换(统计个数, 拆分成一个个记录)
使用aggregate, $unwind, $project, $group, $match, $size
$unwind
解析list字段
$project
重构表格
$group
分组
$match
过滤条件
$size
统计list字段中的个数, 如果是查询条件则是查询指定list字段个数的记录
使用方式
db.databaseName.aggregate(
{ $unwind: '$list字段名'},
{ $match: {}},
{ $project:
{
'自定义字段名': '$字段名(.字段名)', // 用自定义名称显示指定字段
'字段名': 1, // 要显示的字段,
'subNum': {$size: '$list字段'} // 当前例子不与$unwind同用
}
},
{ $group:
{
_id: null // null就是不分组
total: {$sum: '$subNum'} // $subNum指的是要统计的数字字段, 当前例子指的是重构的表格中的subNum字段, 当前例子不与$unwind同用
}
}
)
统计个数
db.databaseName.aggregate(
{ $match: {}},
{ $project:
{
'自定义字段名': '$字段名(.字段名)', // 用自定义名称显示指定字段
'字段名': 1, // 要显示的字段,
'subNum': {$size: '$list字段'} // 当前例子不与$unwind同用
}
}
)
统计总数
db.databaseName.aggregate(
{ $match: {}},
{ $project:
{
'自定义字段名': '$字段名(.字段名)', // 用自定义名称显示指定字段
'字段名': 1, // 要显示的字段,
'subNum': {$size: '$list字段'} // 当前例子不与$unwind同用
}
},
{ $group:
{
_id: null // null就是不分组
total: {$sum: '$subNum'} // $subNum指的是要统计的数字字段, 当前例子指的是重构的表格中的subNum字段, 当前例子不与$unwind同用
}
}
)
将list拆分成一个个记录
db.databaseName.aggregate(
{ $unwind: '$list字段名'},
{ $match: {}},
{ $project:
{
'自定义字段名': '$字段名(.字段名)', // 用自定义名称显示指定字段
'字段名': 1, // 要显示的字段,
}
}
)
每个牛B人物背后都有段苦逼的岁月,只要像SB一样坚持,终将牛B!

浙公网安备 33010602011771号