如何获取聚合中字段的值数组
how get value array of a field in aggregation
我有一个 collection 保存有关电影的信息,这个 collection 名称是 Movie。此字段之一是 stars,用于保存在电影中扮演的演员。我将 stars 保存在一个数组中。 现在我想写一个带有聚合的函数,可以 return 给我在大多数电影中播放的明星 。此外,我在用户 collection 中保存了星星。我写了这个函数,但它是错误的。因为它将星星分组为数组
async function starsActMostMovies(){
const res = await Movie.aggregate([
{
$group: {
_id : '$stars'
}
}
])
return res
}
starsActMostMovies().then(function(result){
console.log(result)})
并且在 我写了我的数据库模型。
首先,您应该在该字段的开头拆分数组,这样您的 collection 将只包含一颗星。
使用$unwind运算符来执行它。例如:
Movie.aggregate([
{
$unwind: '$stars'
},
{
$group: {
_id : '$stars'
}
}
])
$unwind 后 $group 将按星执行聚合。
祝你好运!
我有一个 collection 保存有关电影的信息,这个 collection 名称是 Movie。此字段之一是 stars,用于保存在电影中扮演的演员。我将 stars 保存在一个数组中。 现在我想写一个带有聚合的函数,可以 return 给我在大多数电影中播放的明星 。此外,我在用户 collection 中保存了星星。我写了这个函数,但它是错误的。因为它将星星分组为数组
async function starsActMostMovies(){
const res = await Movie.aggregate([
{
$group: {
_id : '$stars'
}
}
])
return res
}
starsActMostMovies().then(function(result){
console.log(result)})
并且在
首先,您应该在该字段的开头拆分数组,这样您的 collection 将只包含一颗星。
使用$unwind运算符来执行它。例如:
Movie.aggregate([
{
$unwind: '$stars'
},
{
$group: {
_id : '$stars'
}
}
])
$unwind 后 $group 将按星执行聚合。 祝你好运!