以Mongodb汇总

时间:2017-09-26 19:04:38

标签: mongodb mongoose aggregate

我尝试在viewAmount文档上创建一个Video属性,我们总结了它所拥有的名为Views的内容,但仅限于view.valid = true。< / p>

这是我到目前为止所做的:

{
        $project: {
          title: 1,
          viewAmount: { $size: "$views" }
        }
      },

如果视图有效,我可以添加什么来进行条件检查,而不仅仅是注意大小?我是否必须使用$unwind运算符?感谢

编辑:

我实际上正在检查view.validity(checkedView.validity)是否等于&#39; real&#39;。

到目前为止,我的更新答案尚未完成:

{ $project: {
          title: 1,
          viewAmount: {
            $size: {
              $filter: {
                input: "$checkedViews",
                as: "view",
                cond: { $eq: ["$$view.validity", "real"] }
              }
            }
          }
        }
      },

视频示例:

{
    "_id" : ObjectId("59b5d09980348a3ec3541acc"),
    "checkedViews" : [ 
        ObjectId("59b5d0b280348a3ec3541acd"), 
        ObjectId("59b5d0bf80348a3ec3541ace"), 
        ObjectId("59b5d1dbd8f37d4ab797fa5c")
    ]
}

checkedView:

示例
{
    "_id" : ObjectId("59b5d0b280348a3ec3541acd"),
    "updatedAt" : ISODate("2017-09-10T23:54:26.752Z"),
    "createdAt" : ISODate("2017-09-10T23:54:26.752Z"),
    "video" : ObjectId("59b5d09980348a3ec3541acc"),
    "validity" : "real",
    "__v" : 0
}

0 个答案:

没有答案