本文介绍了Sails js,我们如何使用populate编写内连接的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

Sails 的填充作为左连接起作用.我想做内连接,

Sails's populate works as Left join. I want to do as inner join,

任何人都可以帮助我如何在不编写原始查询的情况下使用 populate 编写内部连接.我正在使用 MYSQL 适配器.

Anybody help me how we can write inner join using populate without writing raw query. I am using MYSQL adapter.

推荐答案

如果你有两个模型 user , contacts一对多关系你尝试写一些类似的东西:-

if you have for example two models user , contacts relation one-to-many you try to write something like :-

第一个模型会喜欢这个:-

first models will like this :-

user.js

module.exports = {
  schema: true,
  tableName: 'userdata',
  attributes: {
    anyField: {
      type: 'integer',
      required: false,
      size: 56,
    },
    contacts: {
      collection: 'Contact',
      via: 'user'
    }

};

contact.js :-

contact.js :-

module.exports = {

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

    user: {
      model: 'User'
    }
};

你可以得到这样的填充结果:-

and you can get result of populate like this :-

User.find(user.id).populate('contacts').exec(function (err, user) {
  // this contains  user object  and populated by contacts 
     console.log(user[0].contacts);
});

你得到的结果是:-

{
name:'tets',
contacts:[{
 'name':'test',
'mobile_number':'00000'
},
{
 'name':'test',
'mobile_number':'00000'
},
{
 'name':'test',
'mobile_number':'00000'
}]
}

这篇关于Sails js,我们如何使用populate编写内连接的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-15 21:22