node.js - sails/水线 : How to retrieve relations inside a relation?

标签 node.js sails.js waterline

我需要检索一个对象并获取关系和嵌套关系。

所以,我有以下三个模型:

用户模型:

module.exports = {

  attributes: {
    name: {
      type: 'string'
    },
    pets: {
      collection: 'pet',
      via: 'owner',
    }
}

宠物模型:

module.exports = {
  attributes: {
    name: {
      type: 'string'
    },
    owner: {
      model: 'user'
    },
    vaccines: {
      collection: 'vaccine',
      via: 'pet',
    }
}

疫苗模型:

module.exports = {
  attributes: {
    name: {
      type: 'string'
    },
    pet: {
      model: 'pet'
    }
}

调用 User.findOne(name: 'everton').populate('pets').exec(....) 我获取了用户和关联的宠物。我怎样才能为每只宠物接种相关疫苗?我在官方文档中没有找到这方面的引用。

最佳答案

我也遇到了这个问题,据我所知,嵌套关联查询尚未内置到 sails 中(截至本文)。

您可以使用 Promise 来为您处理嵌套填充,但如果您填充许多级别,这可能会变得相当棘手。

类似于:

User.findOne(name: 'everton')
  .populate('pets')
  .then(function(user) {
    user.pets.forEach(function (pet) {
      //load pet's vaccines
    });
  });

这是 sails.js 上广泛讨论的主题,实际上有一个开放的拉取请求添加了此功能的大部分。查看https://github.com/balderdashy/waterline/pull/1052

关于node.js - sails/水线 : How to retrieve relations inside a relation?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39151123/

相关文章:

javascript - 如何console.log大对象?

javascript - 比较两个包含对象的数组,包括其他对象、数组等

node.js - Nodejs、npm 和 sailsjs 之间是否存在版本依赖问题?

javascript - Sails.js 模型 updatedAt (updated_at) 不自动更新

node.js - sails.js - 我如何在模型 Hook beforeCreate 中访问 session 数据

node.js - 如何分离水线链接方法

javascript - 将音频从浏览器流式传输到具有特定 MIME 类型的 Node.js 服务器

node.js - 无法使用 gmail SMTP

javascript - Sails.js - 如何避免 Sails JS 在数据库表上查找 Id(因为该表没有 id 列)

node.js - 取消特定文件中的全局变量的定义