Как получить ряд сопутствующих товаров внутри товара - PullRequest
1 голос
/ 06 марта 2020

Мне нужно написать запрос, чтобы подсчитать количество сопутствующих товаров. Я пробовал это, но не сработало:

db.collection.aggregate([
  {
    $match: {
      title: "bike"
    }
  },
  {
    $group: {
      _id: {
        related: "$related",
        inside: "$inside"
      },
      related: {
        $sum: "$inside"
      }
    }
  }
])

Мне нужно получить количество предметов внутри, таблица выглядит так

{
   "title" : "bike",
   "related" : {
       "inside" : [ 
           "item1", 
           "item2", 
           "item3",         
       ]
   }
}

Любые идеи, как получить это количество предметов внутри "велосипед" -> "внутри"?

1 Ответ

1 голос
/ 06 марта 2020

По сути, вы ищете оператора $ size . Вы можете использовать $ addFields , чтобы добавить это значение к каждому документу:

db.collection.aggregate([
    {
        $match: { title: "Watch" }
    },
    {
        $project: {
            size: { $size: "$related.viewed" }
        }
    }
])

Пн go Детская площадка

...