带有根的 mongodb facet

问题描述

有没有办法在没有 $facet 的情况下将根文档推送到 $group 上的特定字段?例如,

db.artwork.aggregate( [
  {
    $facet: {
      "categorizedByTags": [
        { $unwind: "$tags" },{ $sortByCount: "$tags" }
      ],"items": [{$push: "$$ROOT"}] // I want to push all root document to `items`.
    }
  }])

解决方法

是的,只需使用一个空的 $match,如下所示:

db.artwork.aggregate( [
  {
    $facet: {
      "categorizedByTags": [
        { $unwind: "$tags" },{ $sortByCount: "$tags" }
      ],"items": [{$match: {}}]
    }
  }])
,

你可以这样使用:

db.artwork.aggregate( [
{
 $facet: {
   items: [ { $match: {} } ],}
 }
])