Mongodb 需要帮助聚合猫鼬数据吗

Mongodb 需要帮助聚合猫鼬数据吗,mongodb,mongoose,aggregation-framework,mern,Mongodb,Mongoose,Aggregation Framework,Mern,我有一个MERN堆栈应用程序,当我进行GET调用时,我希望返回所有MongoDB对象的投票 这就是我的对象的外观: {_id: ObjectId("6092d48d96984d233cf77152") user: "John Doe" movies: [ 0: _id: ObjectId("6092b19345f48a33447468a7"), title: "Alpha&qu

我有一个MERN堆栈应用程序,当我进行GET调用时,我希望返回所有MongoDB对象的投票

这就是我的对象的外观:

{_id: ObjectId("6092d48d96984d233cf77152")
user: "John Doe"
movies: [
     0:
          _id: ObjectId("6092b19345f48a33447468a7"),
          title: "Alpha",
          ranking: 3
     1:
          _id: ObjectId("6092b19345f48a33447468a7"),
          title: "Bravo",
          ranking: 2
     2:
          _id: ObjectId("6092b19345f48a33447468a7"),
          title: "Charlie",
          ranking: 1
]}

{_id: ObjectId("6092d48d96984d233cf77152")
user: "John Doe"
movies: [
     0:
          _id: ObjectId("6092b19345f48a33447468a7"),
          title: "Alpha",
          ranking: 3
     1:
          _id: ObjectId("6092b19345f48a33447468a7"),
          title: "Bravo",
          ranking: 2
     2:
          _id: ObjectId("6092b19345f48a33447468a7"),
          title: "Charlie",
          ranking: 1
]}

显然会有更多的数据,但基本上我希望返回:

[{title: "Alpha", ranking: 6},
{title: "Bravo", ranking: 4},
{title: "Charlie", ranking: 2}]
我假设我必须使用
$match
函数,但这是我第一次这样使用Mongoose/MongoDB。提前谢谢

  • $unwind
    deconstruct
    movies
    array
  • $group
    by
    movies.title
    和sum
    排名

太好了,非常感谢!我知道电影阵列有些奇怪
let result = await YourModelName.aggregate([ // replace your model name
  { $unwind: "$movies" },
  {
    $group: {
      _id: "$movies.title",
      ranking: { $sum: "$movies.ranking" }
    }
  }
])