我目前在 for 循环中设置了对数据库的多个请求。
// week is a moment-range object
for (const day of week.by('day')) {
// get start and end of day
const startDay = day.startOf('day').toDate();
const endDay = day.endOf('day').toDate();
// I would like to reduce this query to one
const data = await Model.find({
$or: [
{
$and: [{ start: { $gte: startDay } }, { start: { $lt: endDay } }],
},
{
$and: [{ end: { $gte: startDay } }, { end: { $lt: endDay } }],
},
],
})
.sort({ start: 'asc' })
.select('_id someref')
.populate('someref', 'name');
console.log(data);
}
这不是很有效,因此我想将其减少为一个查询,按当前返回的数据分组。
我已经尝试在 for 循环中准备 find 参数,但没有走远。任何提示将不胜感激。