比如有一个数据库A,在一次请求的基础上需要查询两次,一次按照时间来查询30条数据,一个随机查询30条数据,然后重复请求两次,响应速度大大降低,然后合并在一个后用or,同样也会大大降低查询速度,这种之前在阿里云不会有这个问题,这个问题可以优化一下吗?
let res = await DB.collection('A').aggregate()
.match({
time: command.gt(time),
user: "ok",
})
.lookup({
from: 'user',
let: {
user_id: '$id',
},
pipeline: aggregate.pipeline()
match(command.expr(aggregate.and([
aggregate.eq(['$id', '$$user_id']),
])))
.project({
id: 1,
})
.done(),
as: "data_user",
})
.sample({
size: 30,
})
.end()、
===========================================================================
let Res = await DB.collection('A').aggregate()
.match({
user: "ok",
})
.lookup({
from: 'user',
let: {
user_id: '$id',
},
pipeline: aggregate.pipeline()
match(command.expr(aggregate.and([
aggregate.eq(['$id', '$$user_id']),
])))
.project({
id: 1,
})
.done(),
as: "data_user",
})
.sample({
size: 30,
})
.end()、
为人方正实诚 (作者)
看截图
2024-11-06 19:18