簡體   English   中英

回送聯接/包括兩個集合

[英]Loopback join/include two collections

我想將我的product_product模型包含在product_template中。

1-每個產品模板都有自己的product_product變體“ HasMany”。

2-product_product只有一個模板“ BelongsTo” product_template

3- product_template應該只填充相關的product_product變體。

4-這兩個模型分別保存,因此當我調用find()函數時,我想獲得一個product_template模型,其中填充了與之相關的product_product(可以多個)

獲取產品模板功能:

Producttemplate.find({
      include: {
        relation: 'variations',
        scope: {
          fields: ['sku', 'name', 'price', 'regular_price', 'weight', 'description', 'stock_quantity'],
        },
      },
    })

product_product型號:

此模型應包含在product_template中

    {
      "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": {}
    }

product_template型號:

該模型應包含product_product

{
  "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 [] }

當我指向變量時,我得到一個函數,並指向variances.list,但我不確定如何獲得確切結構的任何想法?

我的模型“ TeamRole”的示例代碼部分,在模型級別屬於“ Team”和“用戶”。

teamRole.json

"validations": [],
  "relations": { 
    "team": {
      "type": "belongsTo",
      "model": "Team",
      "foreignKey": ""
    },
    "user": {
      "type": "belongsTo",
      "model": "User",
      "foreignKey": ""
    }
  }

團隊角色的搜索查詢示例,

query.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 ")
    });

希望使用上面的示例對您有所幫助。

對不起,我很晚才回答,這只是對關系和結構的誤解,我做了一個函數來驗證產品模型是否存在於模板中(如果是),我將模板ID推入產品模型中,並且工作正常。

product_product模型:我刪除了下面模型中的關系,因為它沒有用,所以我刪除了sku中的id屬性,並刪除了_id_Odoo字段,然后添加了包含模板模型ID的id字段和parent_template字段。

{
      "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    
    }

product_template模型:我在sku中刪除了_id_odoo和id屬性,並為此模型創建了一個ID,並因此將parent_template作為外​​鍵

{
  "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"
    }
  },
#############
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM