【发布时间】:2014-07-02 08:43:43
【问题描述】:
我在 Node.js 有一个项目,使用 Sequelize 作为 ORM。
我创建了多对多关系,我需要使用“where”子句中联结表中的一些列进行查询。
我有以下型号:
sequelize.define("User", {
//some values
}, {
"classMethods" : {
"associate" : function (models) {
User.hasMany(models.Book, { "through" : models.BorrowedBook });
}
}
});
sequelize.define("Book", {
//some values
}, {
"classMethods" : {
"associate" : function (models) {
Book.hasMany(models.User, { "through" : models.BorrowedBook });
}
}
});
sequelize.define("BorrowedBook", {
//some other values
"returnedAt" : DataTypes.DATE
}
);
如何在“where”子句中使用“BorrowedBook”中的列?
例如我想让所有用户热切地加载至少有 1 本书并且“BorrowedBook.returnedAt”为空。
有没有办法,像这样的?
db.Book
.find({
"include" : [
db.User,
{ "model" : db.BorrowedBook, "where" : { "borrowedAt" : null } }
]
})
【问题讨论】:
-
如果你使用 sequelize 的 master 分支,你应该可以做类似
{model: db.User, through: { where: { borrowedAt: null } } }
标签: node.js orm sequelize.js