我如何通过 GORM 查询和 return 只有 id 数组?
How can I query and return only id array by GORM?
我现在在使用 Gorm 从数据库 (Postgres) 获取数组提要的 ID 时遇到问题。
如何查询和 return id 数组供稿?我不知道如何在没有循环的情况下仅从结构中获取 id
feeds := []models.Feed{}
feedID := []string{}
db.Select("id").Where("user_id = ?", "admin1").Find(&feeds)
for _, feed := range feeds {
feedID = append(feedID, feed.ID)
}
utils.PrintStruct(feeds)
这是 Feed 模型文件:
type Feed struct {
Model
Status string `json:"status"`
PublishAt *time.Time `json:"publishAt"`
UserID string `json:"userID,omitempty"`
}
这是用于数据实体的模型基础数据模型:
type Model struct {
ID string `json:"id" gorm:"primary_key"`
}
结果:
[
{
"id": "d95d4be5-b53c-4c70-aa09",
"status": "",
"publishAt": null,
"userID":""
},
{
"id": "84b2d46f-a24d-4854-b44d",
"status": "",
"publishAt": null,
"userID":""
}
]
但我想要这样:
["d95d4be5-b53c-4c70-aa09","84b2d46f-a24d-4854-b44d"]
您可以使用pluck
var ids []string
db.Model(&Feed{}).Where("user_id = ?", "admin1").Pluck("id", &ids)
我现在在使用 Gorm 从数据库 (Postgres) 获取数组提要的 ID 时遇到问题。
如何查询和 return id 数组供稿?我不知道如何在没有循环的情况下仅从结构中获取 id
feeds := []models.Feed{}
feedID := []string{}
db.Select("id").Where("user_id = ?", "admin1").Find(&feeds)
for _, feed := range feeds {
feedID = append(feedID, feed.ID)
}
utils.PrintStruct(feeds)
这是 Feed 模型文件:
type Feed struct {
Model
Status string `json:"status"`
PublishAt *time.Time `json:"publishAt"`
UserID string `json:"userID,omitempty"`
}
这是用于数据实体的模型基础数据模型:
type Model struct {
ID string `json:"id" gorm:"primary_key"`
}
结果:
[
{
"id": "d95d4be5-b53c-4c70-aa09",
"status": "",
"publishAt": null,
"userID":""
},
{
"id": "84b2d46f-a24d-4854-b44d",
"status": "",
"publishAt": null,
"userID":""
}
]
但我想要这样:
["d95d4be5-b53c-4c70-aa09","84b2d46f-a24d-4854-b44d"]
您可以使用pluck
var ids []string
db.Model(&Feed{}).Where("user_id = ?", "admin1").Pluck("id", &ids)