Node.js 环回连接/包括两个集合

Node.js 环回连接/包括两个集合,node.js,mongodb,loopbackjs,Node.js,Mongodb,Loopbackjs,我想在产品模板中包含我的产品模型 1-每个产品模板都有自己的产品,产品变体很多 2-产品\u产品只有一个属于产品\u模板的模板 3-产品模板应仅填写相关的产品变更 4-这两个模型分别保存,因此当我调用find函数时,我希望得到一个产品模板模型,其中填充了与之相关的产品。产品可能不止一个 获取产品模板功能: 产品\产品型号: 此模型应包含在产品模板中 { "name": "product_product", "base": "PersistedModel",

我想在产品模板中包含我的产品模型

1-每个产品模板都有自己的产品,产品变体很多

2-产品\u产品只有一个属于产品\u模板的模板

3-产品模板应仅填写相关的产品变更

4-这两个模型分别保存,因此当我调用find函数时,我希望得到一个产品模板模型,其中填充了与之相关的产品。产品可能不止一个

获取产品模板功能:

产品\产品型号:

此模型应包含在产品模板中

    {
      "name": "product_product",
      "base": "PersistedModel",
       "strict": true,
       "options": {
       "validateUpsert": true
            },
      "properties": {
        "_id_Odoo": {
          "type": "number"
        },
        "sku": {
          "type": "string",
          "id": true,
          "required": true,
          "description": "Yes it's SKU"
        },
       #fields
      },
      "validations": [],
      "relations": {
        "product": {
          "type": "belongsTo",
          "model": "product_template",
          "foreignKey": "_id_Odoo"
        }
      },
      "acls": [],
      "methods": {}
    }
产品模板模型:

此模型应包括产品

{
  "name": "product_template",
  "base": "PersistedModel",
       "strict": true,
       "options": {
       "validateUpsert": true
            },
  "properties": {
   "_id_Odoo": {
      "type": [
        "number"
      ]
    }
    "sku": {
      "type": "string",
      "id": true,
      "required": true,
      "description": "Yes it's SKU"
    },
    "name": {
      "type": "string"
    }
  },
  "scope": {
    "include": "variations"
  },
  "hidden": ["_id_Odoo"],
  "validations": [],
  "relations": {
    "variations": {
      "type": "hasMany",
      "model": "product_product",
      "foreignKey": "_id_Odoo"
    }
  },
  "acls": [],
  "methods": {}
}
结果:

这是上面获取产品模板的结果:

{ sku: 'AHWLI05942-FUSCHIA', variations: List [] },
  { sku: 'AHWLI05943-BLACK', variations: List [] },
  { sku: 'AHWLI05943-BURGUNDY', variations: List [] },
  { sku: 'AHWLI05944-BLACK', variations: List [] },
  { sku: 'AHWLI05944-MARRON', variations: List [] },
  { sku: 'AHWLI05945-BLUE', variations: List [] }

当我指向变体时,我得到一个函数,进入变体。列表我得到未定义的任何想法如何获得精确的结构?

示例代码我的模型团队角色的一部分,属于模型级别的团队和用户

teamRole.json

团队角色的搜索查询示例

query.js


希望上面的例子能对您有所帮助。

很抱歉反应太晚,这只是对关系和结构的误解,我做了一个函数来验证模板中是否存在产品模型。如果是,我在产品模型中推送模板id,效果很好

product\u product Model:我删除了下面模型中的关系,因为它是无用的,所以我删除了sku中的id属性并删除了_id\u Odoo字段,然后添加了包含模板模型id的id字段和父模板字段

{
      "name": "product_product",
      "base": "PersistedModel",
       "strict": true,
       "options": {
       "validateUpsert": true
            },
      "properties": {
        "id": {
          "type": "number"
          "id": true
        }
        "parent_template": {
          "type": "number"
        },
        "sku": {
          "type": "string",
          "required": true,
          "description": "Yes it's SKU"
        },
       #fields    
    }
产品模板模型:我删除了sku中的_id_odoo和id属性,并为此模型创建了一个id,并将父模板作为foreignkey

{
  "name": "product_template",
  "base": "PersistedModel",
       "strict": true,
       "options": {
       "validateUpsert": true
            },
  "properties": {
   "id": {
      "type": "number",
      "id" : true
    }
    "sku": {
      "type": "string",
      "required": true,
      "description": "Yes it's SKU"
    },
    "name": {
      "type": "string"
    }
  },
  "scope": {
    "include": "variations"
  },

##########

  "relations": {
    "variations": {
      "type": "hasMany",
      "model": "product_product",
      "foreignKey": "parent_template"
    }
  },
#############
}

您能否显示访问模型的上下文?是通过HTTP,还是在模型的JS中?
   app.models.TeamRole.find({
      where: { 
           userId: user.id
      },
      include: {
        relation: 'team'
      }
    },function(err,teams){
     console.log("teams will have all the include teams[] with team role ")
    });
{
      "name": "product_product",
      "base": "PersistedModel",
       "strict": true,
       "options": {
       "validateUpsert": true
            },
      "properties": {
        "id": {
          "type": "number"
          "id": true
        }
        "parent_template": {
          "type": "number"
        },
        "sku": {
          "type": "string",
          "required": true,
          "description": "Yes it's SKU"
        },
       #fields    
    }
{
  "name": "product_template",
  "base": "PersistedModel",
       "strict": true,
       "options": {
       "validateUpsert": true
            },
  "properties": {
   "id": {
      "type": "number",
      "id" : true
    }
    "sku": {
      "type": "string",
      "required": true,
      "description": "Yes it's SKU"
    },
    "name": {
      "type": "string"
    }
  },
  "scope": {
    "include": "variations"
  },

##########

  "relations": {
    "variations": {
      "type": "hasMany",
      "model": "product_product",
      "foreignKey": "parent_template"
    }
  },
#############
}