有没有办法在sails中填充创建的数据js(mongodb)

时间:2016-10-06 07:32:35

标签: node.js mongodb sails.js

我有一个名为Business的模型,它有一个类型为modal的地址:地址, 我想在创建业务时发送带有业务数据的地址对象而不是id。 简单的create方法只是返回创建的地址对象的id 我想填充回复 这就是我使用它的原因:

register: function(req, res) {
        const values = req.body;
        Business.create(values).then(function(response) {
            Business.findOne({ id: response.id }).populate('address').then(function(response) {
                res.ok(response);
            });
        });
    },

但我不认为这是一种正确的方式..我再次查询数据库以填充结果。这给了我我想要的东西。 我想用这样的东西:

    register: function(req, res) {
            const values = req.body;
            Business.create(values).then(function(response).populate('address') {
                 res.ok(response);
            });
        },

或删除对数据库的第二个查询的任何内容

我知道这很疯狂......但请帮忙

模型是

module.exports = {
  schema: true,

  attributes: {
    name: {
      type: 'string'
    },

    description: {
      type: 'string'
    },

    address: {
      model: 'Address'
    },

    email: {
      type: 'email',
      unique: true
    },

    landline: {
      type: 'string'
    },

    logo: {
      model: 'Image'
    },

    status: {
      type: 'string',
      enum: ['open', 'closed'],
      defaultsTo: 'open'
    },

    uniqueBusinessName: {
      type: 'string',
      unique: true
    },
  },
};

1 个答案:

答案 0 :(得分:2)

create类方法不支持populate,因此您执行此操作的方式是正确的。如果您想将此作为一项功能提出,请查看Sails.js项目guidelines for proposing features and enhancements