我有一个函数,首先提取所有找到的目录并按字母顺序排序,然后提取所有其他不是目录的数据并按字母顺序排序,最后将它们组合起来。
@Get('roots')
async findRoots(@Req() request: Request) {
const user = await this.authService.findCurrentUser(request);
const directories = await this.fileService.findAll({
relations: ['user', 'parent', 'parent.parent'],
order: {
name: 'ASC',
},
where: {
user: user.user_id,
parent: IsNull(),
type: 'dir',
},
});
const otherFiles = await this.fileService.findAll({
relations: ['user', 'parent', 'parent.parent'],
order: {
name: 'ASC',
},
where: {
user: user.user_id,
parent: IsNull(),
type: Not('dir'),
},
});
return directories.concat(otherFiles);
}
但我不喜欢必须执行两个查询的事实。有没有可能通过一个请求来实现这一点?
1条答案
按热度按时间aurhwmvo1#
您可以简单地从WHERE条件中删除
type
。如果你想在文件之前使用目录,我建议你在代码中进行分离,而不需要进行两次查询。