【发布时间】:2021-05-09 00:40:22
【问题描述】:
不知道该怎么做,有 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 获得它。
【问题讨论】:
-
这能回答你的问题吗? count of $lookup result mongodb
-
不,这不是我真正需要的。我需要计算类别数组中 ID 的出现次数,而不是进行内连接,否则查询会变慢。 ps:那个答案应该修改了……
-
你不能使用populate来获取大小,你必须使用聚合方法,看我的回答。
-
是的,你是对的。我在查询错误的集合。谢谢你的提示!