我是新来的,最近加入了 ORM 我正在尝试的代码
第一个查询:我想使用这种方法,但不确定如何按列进行分组,然后在该列上按 desc 排序
const result = await this.jobViewsRepository.find({
relations: ["jobs"],
loadEagerRelations: true,
order: { id: "DESC" },
skip: offset,
take: limit,
}
);
Run Code Online (Sandbox Code Playgroud)
我正在尝试是否可以在上面的查询中使用它
第二个问题:它对我来说完美无缺,我正在寻找的结果
const res = await this.jobViewsRepository.createQueryBuilder('jobViews')
.addSelect("COUNT(jobViews.user_id) AS jobViews_total_count" )
.leftJoinAndSelect(Jobs, "jobs", "jobs.id = jobViews.job_id")
.where("jobs.user_id != :id", { id: user_id })
.groupBy("jobViews.job_id")**
.orderBy('jobViews_total_count', 'DESC')**
.limit(limit)
.offset(offset)
.getRawMany();
Run Code Online (Sandbox Code Playgroud)
如果有人能帮我解决这个问题,我将不胜感激
谢谢
我有以下 GraphQL 查询(使用 Apollo Client JS):
query GetUsers($searchFilter: String) {
users(
first: 10,
filter: { search: $searchFilter }
) {
nodes {
id
name
}
}
}
Run Code Online (Sandbox Code Playgroud)
当我传递参数时,这很有效$searchFilter。但是,我希望这个$searchFilter参数是可选的。因此,当它出现时,null它不会应用过滤器。
这看起来很简单,但 API 要求search不可为空。filter: { search: null }所以不允许传入。
我想实现以下目标:
query GetUsers($searchFilter: String) {
users(
first: 10,
filter: $searchFilter = null ? null : { search: $searchFilter }
) {
nodes {
id
name
}
}
}
Run Code Online (Sandbox Code Playgroud)
我如何有条件地包含filter参数?
使用 Apollo Client 3 和 eed 删除查询的所有结果,无论参数如何。像这样尝试过;
cache.evict({
id: "ROOT_QUERY",
fieldName: "countries"
});
cache.gc();
Run Code Online (Sandbox Code Playgroud)
然而,没有从缓存中删除任何内容,__APOLLO_CLIENT__.cache.data所有结果仍然在缓存中。另一方面,我可以删除单个Country对象。
你可以在这里看到它沙盒