SailsJS使用Model.query手动填充记录

时间:2015-04-29 04:12:31

标签: sql node.js sails.js waterline

让我说我有这个例子作为我的应用程序 http://sailsjs.org/#!/documentation/concepts/ORM/Associations/OnetoMany.html

由于一些重要原因(复杂)我不能使用Model.populate()而且我坚持使用Model.query()

是否有人知道如何使用User.find().populate('pets')

获取结果Model.query()

谢谢

1 个答案:

答案 0 :(得分:1)

你可以像水线适配器那样填充OneToMany:

  1. 检索父母:
    $toReturn = array_map('encode_all_strings', $toReturn); function encode_all_strings($arr) { foreach($arr as $key => $value) { $arr[$key] = utf8_encode($value); } return $arr; }
  2. 仅在一个查询中为每个父级检索子级,以使DBMS不重载:
    select * from user ...
  3. 通过parentPk重新组合子项(您可以使用lodash或underscore.js函数来执行此操作)例如:

    select * from pet where user = user1.id union select * from pet where user = user2.id union ... union select * from pet where user = userN.id