我想知道如何获取特定的字段值?
在我的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的工作原理:(
答案 0 :(得分: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 }