簡體   English   中英

序列化-使用或運算符與模型關聯進行查詢

[英]Sequelize - query with or operator and model association

使用Sequelize ,我有兩個具有多對多關聯的模型: UserCategory
我想獲取屬於當前用戶的所有類別,以及具有特定屬性的類別,但我不知道如何,僅需一個查詢...

根據文檔 ,我正在使用Op.or運算符,以及用於關聯模型的$Model.attribute$語法(請參見此處 )。

let categories = await models.category.findAll({
        where: {
            [Op.or]: [
                { someCategoryProperty: true },
                { '$User.id$': req.currentUser.id },
            ],
        },
        include: [{
            model: models.user,
            as: 'User',
        }],
    });

如果我為Category模型添加2個條件,該運算符將起作用,但是如何在關聯上添加一個條件?

我終於找到了提示:

實際上, $Model.attribute$不是一個好的模式, $database_table_name.attribute$是一個好的模式。

使用'$..$'語法,我們必須使用數據庫表名稱 ,而不是模型。
如果我的模型稱為user ,則Sequelize將數據庫名稱設置為users

所以這段代碼有效:

let categories = await models.category.findAll({
        where: {
            [Op.or]: [
                { someCategoryProperty: true },
                { '$users.id$': req.currentUser.id },
            ],
        },
        include: [{
            model: models.user,
        }],
    });

謝謝

暫無
暫無

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

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