修饰符
修饰符用于改变响应的格式,与过滤 器不同,它们作用于行级别以上的操作。
过滤器仅返回匹配特定条件的行而不改变行的形状,而修饰符允许改变响应的格式。
select
默认情况下,.insert() 不会返回插入的行。通过调用此方法,插入的行将在数据中返回。
⚠️ 注意:仅当表中只有一个主键,且该主键为自增类型时,
.select()方法才会返回插入的行。
参数
| 参数名 | 类型 | 必填 | 描述 |
|---|---|---|---|
| columns | string | 否 | 要检索的列,用逗号分隔 |
代码示例
// 在 articles 表中执行 upsert 操作,并返回修改后的完整记录
const { data, error } = await db
.from("articles")
.insert({ id: 1, title: "腾讯云开发新功能" })
.select();
order
对查询结果进行排序。
可以多次调用此方法来按多个列排序。
可以对引用的表进行排序,但仅当在查询中使用 !inner 时,它才会影响父表的排序。
参数
| 参数名 | 类型 | 必填 | 描述 |
|---|---|---|---|
| column | string | 是 | 要排序的列 |
| options | object | 否 | 命名参数 |
options 参数详情
| 参数名 | 类型 | 必填 | 描述 |
|---|---|---|---|
| ascending | boolean | 否 | 如果为 true,结果将按升序排列 |
| nullsFirst | boolean | 否 | 如果为 true,null 值将首先出现。如果为 false,null 值将最后出现 |
| referencedTable | string | 否 | 设置为按引用表的列排序 |
代码示例
// 按发布时间降序排列文章
const { data, error } = await db
.from("articles")
.select("id, title, published_at")
.order("published_at", { ascending: false });
对引用表排序
// 对引用表 categories 按 name 降序排列
const { data, error } = await db
.from("articles")
.select(`
title,
categories (
name
)
`)
.order("name", { referencedTable: "categories", ascending: false });
// 按引用表 category 的 name 列升序排列
const { data, error } = await db
.from("articles")
.select(`
title,
category:categories (
name
)
`)
.order("category(name)", { ascending: true });
limit
限制返回的行数。
参数
| 参数名 | 类型 | 必填 | 描述 |
|---|---|---|---|
| count | number | 是 | 要返回的最大行数 |
| options | object | 否 | 命名参数 |
options 参数详情
| 参数名 | 类型 | 必填 | 描述 |
|---|---|---|---|
| referencedTable | string | 否 | 设置为限制引用表的行数,而不是父表的行数 |
代码示例
// 限制返回 5 篇文章
const { data, error } = await db.from("articles").select("title").limit(5);