如何从猫鼬的另一个集合中计算文档?
Posted
技术标签:
【中文标题】如何从猫鼬的另一个集合中计算文档?【英文标题】:How to get counting of documents from another collection in mongoose? 【发布时间】:2019-05-22 20:52:10 【问题描述】:我想知道如何获取特定的字段值?
在我的mysql中:
select *,
(select count(qty) from score where id = a.id) as d_qty
from mlbhitters as a order by no desc
在我的猫鼬中:
this.aggregate([
$match:options.query
,
$sort:
no:-1
,
$limit:options.limit
]).exec(callback);
这就是我应该在我的猫鼬中插入子查询的地方吗?
(select count(qty) from score where id = a.id) as d_qty
我很难理解 MongoDB 是如何工作的 :(
【问题讨论】:
【参考方案1】:考虑最简单的场景,您有两个集合,如下所示:
db.col1.save( _id: 1 )
db.col2.save( col1_id: 1 )
db.col2.save( col1_id: 1 )
db.col2.save( col1_id: 1 )
您可以使用$lookup将数据从col2
获取到col1
,通过指定哪些字段定义“关系”,然后您可以使用$size获取元素个数,试试:
db.col1.aggregate([
$lookup:
from: "col2",
localField: "_id",
foreignField: "col1_id",
as: "col2docs"
,
$project:
col2size: $size: "$col2docs"
])
输出:
"_id" : 1, "col2size" : 3
【讨论】:
非常感谢 :) Micki 谢谢你我学会了查找方法~圣诞快乐 :)以上是关于如何从猫鼬的另一个集合中计算文档?的主要内容,如果未能解决你的问题,请参考以下文章