求教下使用传统方式聚合操作后如何得到数据的总条数,jql里有count()方法,用传统方式要怎么处理啊
res_s = await db.collection('orders').aggregate()
.match({
完成: dbCmd.eq(true)
})
.group({
_id: shezhi,
入数量: $.sum('$数量')
})
//.count('total')
.lookup({
from: 'goods',
let: {
book_产品ID: '$_id.产品ID',
book_货位号: '$_id.货位号',
},
pipeline: $.pipeline()
.match(
dbCmd.expr($.eq(['$产品ID', '$$book_产品ID']))
)
.lookup({
from: 'sell',
let: {},
pipeline: $.pipeline()
.match(dbCmd.expr($.and(guolv)))
.done(),
as: 'count2_list',
})
.done(),
as: 'count1_list'
})
.project({
入数量: true,
info: $.arrayElemAt(['$count1_list', 0]),
})
.project({
id: "$info._id",
产品ID: "$info.产品ID",
产品名称: "$info.产品名称",
单位: "$info.单位",
规格: "$info.规格",
型号: "$info.型号",
货位号: "$_id.货位号",
启用: "$info.启用",
预警数量: "$info.预警数量",
入数量: true,
出数量: $.reduce({
input: '$info.count2_list',
initialValue: 0,
in: $.sum(['$$value', '$$this.数量'])
}),
库存: $.subtract(['$入数量', $.reduce({
input: '$info.count2_list',
initialValue: 0,
in: $.sum(['$$value', '$$this.数量'])
})])
//count: $.sum(1), // count记录条数
})
.match(match)
.skip(0)
.limit(3)
.end()
想得到这样的代码得到的数据的总条数
3***@qq.com
- 发布:2023-03-05 20:39
- 更新:2023-03-06 11:33
- 阅读:209
2 个回复
3***@qq.com (作者)
使用.count('库存')的方法确实能得到条数,但是我想把这个条数加到.addFields()方法里要怎么写代码啊
DCloud_uniCloud_WYQ
不能实现,需要两次查询