[英]Aggregation of different collections in MongoDB
不知道該怎么做,有 SQL 的背景,在那里實現我需要做的事情要容易得多。
基本上我有這樣的收藏新聞:
const news = [
{id: '123123123', category: [ObjectID(12312312323), ObjectID(987987987)]},
{id: '123123123', category: []},
{id: '123123123', category: [ObjectID(987987987)]}
]
然后我有這樣的集合類別:
const category = [
{name: "123a", _id: ObjectID(123123123}, title:"blah blah" },
{name: "987a", _id: ObjectID(987987987}, title:"blih blah" ,
]
我需要做的是加入兩個表並獲得像這樣的聚合
[
{name: "987a", title: "blih blah", count: 2},
{name: "123a", title: "blah blah", count: 1}
]
所以即使在 MySQL 我也會得到類似的東西:
SELECT name, title, count(Select count(category) from news) from categories
但我沒有用 mongoDb / mongoose 得到它。
$lookup
加入news
集合,傳遞_id
作為 localField 和category
作為 foreignField$size
獲取新集合結果的總元素count
db.category.aggregate([
{
$lookup: {
from: "news",
localField: "_id",
foreignField: "category",
as: "count"
}
},
{ $set: { count: { $size: "$count" } } }
])
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.