使用 ORM 在 adonis JS 中选择特定列

Posted

技术标签:

【中文标题】使用 ORM 在 adonis JS 中选择特定列【英文标题】:Select specific columns in adonis JS using ORM 【发布时间】:2018-10-30 11:14:56 【问题描述】:

在 Adonis JS 中有一种方法使用

Database.select('name','email').from('users')

有没有办法使用 ORM 来实现这一点?

const User = use('App/Models/User')

//wherever required

let users = User.find(key).fetch('name', email')

类似于我们在 Laravel 中使用的东西。

User::find(1)->pluck('name');User::find(1)->get(['name']);

【问题讨论】:

【参考方案1】:

模型中的静态方法find返回this

return yield this.query().where(key, value).first()

所以你可以编辑你的查询到这个

yield User.query().where('id', key).select('name', 'email').first()

这将与您尝试做的相同

【讨论】:

如果您使用的是 adonis 4.0 或更高版本,请使用 await【参考方案2】:

Adonis 也有一些 helper methods 用于查询构建器,这些在文档中进行了描述,例如 pluck。所以要得到结果,你会得到类似的东西:

const result = await Database.from('users')
  .where('id', 1)
  .pluck('name');

return result;

或者其他方法

const result = await User.query()
  .where('id', 1)
  .pluck('name')
  .first();

return result;

【讨论】:

以上是关于使用 ORM 在 adonis JS 中选择特定列的主要内容,如果未能解决你的问题,请参考以下文章

Adonis Lucid ORM 不返回数据

Adonis.js 关系

使用 Objection JS 如何使用 withGraphFetched 选择特定列

如何将大文件加载到分块的 Adonis JS 中?

Dockerize adonis.js + mysql

Adonis JS v5 关系缺少模型属性