【问题标题】:Sequelize get pure array without objectsSequelize 得到没有对象的纯数组
【发布时间】:2018-07-16 09:24:10
【问题描述】:

亲爱的,我有以下来自 Sequelize 的查询

 models.ProviderZoneCity.findAll({

         attributes: ['zoneId'],                            
         raw : true
         ,
         where : {
          status : 1
          }
         })

返回的数据显示为

"providerHasZones":[{"zoneId":1},{"zoneId":2},{"zoneId":3}]

我需要的是下面的结构

"providerHasZones":[1,2,3]

所以这将是一个 id 数组而不是对象数组,我尝试过(原始:true)但没有任何改变 :(

有什么建议吗?

【问题讨论】:

  • 你能不能只 map 处理数据? providerHasZones.map(zone => zone.zoneId)
  • thnx 亲爱的,但是如果我有 (then(funcation(data))),我该如何使用地图?我试过 --- }).map(zone => zoneId).then(function (providerHasZones) { 但它显示语法错误

标签: mysql node.js sequelize.js


【解决方案1】:

您可以使用array map 来转换结果,例如

models.ProviderZoneCity.findAll({
     attributes: ['zoneId'],                            
     raw: true,
     where: {
       status: 1
     }
}).then(function(data) {
    return data.map(zone => zone.zoneId);
});

【讨论】:

  • thnx 亲爱的,我该如何使用我拥有的地图 (then(function(data))) ??
  • 我试过 }).map(zone => zoneId).then(function (providerHasZones) { 但它显示语法错误
  • 更新了我的答案,假设第一个函数返回一个承诺
  • 仍然收到来自编辑器的错误! (预期表达)
  • 这个答案应该可以正常工作。您能否提供有关该错误的更多信息?
猜你喜欢
  • 2016-07-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-13
  • 1970-01-01
  • 2013-11-17
  • 1970-01-01
  • 2021-05-02
相关资源
最近更新 更多