获取 Mongodb 中特定页面的关注者数量

Posted

技术标签:

【中文标题】获取 Mongodb 中特定页面的关注者数量【英文标题】:Get number of followers for specific page in Mongodb 【发布时间】:2020-12-25 18:28:42 【问题描述】:

假设我有一个名为 pages 的集合


  _id: "pageid",
  name: "Mongodb"
,

  _id: "pageid2",
  name: "Nodejs"

和用户集合如下


  _id : "userid1",
  following: ["pageid"],
  ...
,

  _id : "userid2",
  following: ["pageid", "pageid2"],
  ...

如何查询页面信息以及关注mongodb中每个页面的用户数,预期结果如下

[
  
    _id: "pageid",
    name: "MongoDB",
    followers: 2
  ,
  
    _id: "pageid2",
    name: "Nodejs",
    followers: 1
  ,
]

【问题讨论】:

【参考方案1】:

您可以使用$lookup$size 计算关注者总数,

db.pages.aggregate([
  
    $lookup: 
      from: "user",
      localField: "_id",
      foreignField: "following",
      as: "followers"
    
  ,
  
    $addFields: 
      followers:  $size: "$followers" 
    
  
])

Playground

【讨论】:

是否只从users 集合中提取following 字段? (我是 MongoDB 新手) 是的,您可以比较和试验关注者数量。

以上是关于获取 Mongodb 中特定页面的关注者数量的主要内容,如果未能解决你的问题,请参考以下文章

获取 Instagram 关注者数量

获取关注者数量 Instagram

获取WordPress中Twitter关注者的数量

Laravel如何通过用户ID获取关注者数量?

如何在 Instagram 中获取其他页面的关注者计数?

获取Twitter关注者数量