Select JSON or tuple query result
For example we have the following table:
#![allow(unused)] fn main() { Person { id: i32, name: String, age: u16, } }
Normally, we want the whole record, and do:
#![allow(unused)] fn main() { let result: Option<person::Model> = person::Entity::find_by_id(id).one(&db).await?; }
This returns a person::Model
object. But sometimes we just want some of the columns, for example, only name
:
#![allow(unused)] fn main() { let result: Option<String> = person::Entity::find_by_id(id) .select_only() .column(person::Column::Name) .into_tuple() .one(&db) .await?; }
For multiple columns, it can also output in JSON or tuple:
#![allow(unused)] fn main() { // JSON let result: Option<sea_orm::query::JsonValue> = person::Entity::find_by_id(id) .select_only() .columns([person::Column::Name, person::Column::Age]) .into_json() .one(&db) .await?; // Tuple let result: Option<(String, u16)> = person::Entity::find_by_id(id) .select_only() .column_as([person::Column::Name, person::Column::Age]) .into_tuple() .one(&db) .await?; }