获取对象数组中值的示例计数(MongoDB)

jk9hmnmh  于 2023-11-17  发布在  Go
关注(0)|答案(1)|浏览(137)

假设我在一个名为books的集合中有一堆文档:

books: [
  {
    title: 'book title',
    genres: [
      {
        id: 1
        name: 'fiction',
      },
      {
        id: 2,
        name: 'mystery',
      },
    ]
  },
  {
    title: 'another book',
    genres: [
      {
        id: 1
        name: 'fiction',
      },
      {
        id: 3,
        name: 'fantasy',
      },
    ]
  }
]

字符串
我想返回一个流派列表,按它们出现的频率分组:

[
  {
    id: 1,
    count: 2,
  },
  {
    id: 2,
    count: 1,
  },
  {
    id: 3,
    count: 1,
  }
]


我该怎么做?

9jyewag0

9jyewag01#

我想我可能找到答案了:

db.books.aggregate({ $unwind: { "path": "$genres" }}, { $group: { "_id": "$genres.id", "count": { $sum: 1 }}}, { $sort: { "count": -1 }})

字符串

相关问题