const orders = await db.collection('Orders').aggregate()
.match(
_.and([_.or(where.keyword), where.cmp_id, where.step, where.flag, where.dateStart, where.dateEnd, where.ids])
)
.sort({
orderNo: -1,
})
.lookup({
from: 'OrderPros',
localField: '_id',
foreignField: 'order_id',
as: 'pros',
})
.match(where.itemNo)
.skip(skip)
.limit(pageSize)
.project({
_id: 1,
orderNo: 1,
orderNumber: 1,
dateStamp: 1,
buyer: 1,
name: 1,
pros: 1,
step: 1,
})
.end()
这段代码在云函数中,如果搜索出来的数据量小于limit或者最后一页,会出现超时问题。如果数据量超过limit 并且不是最后一页,则正常。
建议针对orders 表里和orderprops表里,涉及到的查询字段,加一下索引再试下呢