You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MongoDB按创建者分组查询指定用户是否浏览其全部作品的实现方法

MongoDB 按创建人分组统计全部浏览状态实现方案

直接使用以下3步的聚合管道即可实现需求,核心逻辑是先标记单条故事的浏览状态,再按创建人分组校验所有状态是否全部为已浏览:

// 替换your_story_collection为你的实际集合名,requestUser可作为变量动态传入请求用户
const requestUser = "user3";
db.your_story_collection.aggregate([
  // 第一步:给每条故事新增标记位,判断是否被请求用户浏览过
  {
    $addFields: {
      isViewed: { $in: [requestUser, "$viewers"] }
    }
  },
  // 第二步:按创建人分组,直接计算全量浏览状态
  // 用$min是因为MongoDB中布尔值false < true,只要有一个未浏览,最小值就是false
  {
    $group: {
      _id: "$createdBy",
      isAllViewed: { $min: "$isViewed" }
    }
  },
  // 第三步:输出要求的格式,隐藏多余字段
  {
    $project: {
      _id: 0,
      createdBy: "$_id",
      isAllViewed: 1
    }
  }
])

如果需要排除请求用户自己发布的故事,可在管道最开头增加过滤阶段:
{$match: {createdBy: {$ne: requestUser}}}

内容的提问来源于stack exchange,提问作者Deepak

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 04:06:04