你知道是否有一种简单的方法可以使用sequelize获得下一张唱片? 我返回一个对象,我想进行第二个查询以获取下一个对象。如果它不存在那么我可能应该创建一个原始查询。
编辑:
我的问题可能被误解了。我问过是否有可能获得数据库中的下一条记录。
例如,如果我们有这个表
1 foo
2 bar
3 foobar
4 barfoo
5 ...
然后我得到了第一个元素然后我想进行一个查询,我得到下一个元素,它将成为数据库中的第二个记录
答案 0 :(得分:0)
要使用其他查询,您需要使用回调。
请遵循以下示例:
var query = "SELECT * FROM foo";
sequelize.query(query, {
type: sequelize.QueryTypes.SELECT
}).success(function (query1) {
done = _.after(query1.length, function () {
callback(query1)
})
query = "SELECT * FROM foo2";
sequelize.query(query, {
type: sequelize.QueryTypes.SELECT
}).success(function (query2) {
console.log(query1);
console.log(query2);
});
});
这样就可以实现多次查询。
答案 1 :(得分:0)
这取决于你正在使用的续集版本。 1.7中有QueryChainer: http://sequelize.readthedocs.org/en/1.7.0/docs/utils/
但是从2.1.0:
[DEPRECATED]不推荐使用query-chainer,将其删除 版本2.2。请改用promises。
所以你可以使用原始查询或做一些递归函数:
var queries = ['SELECT ...', 'SELECT ...', ...];
var ql = queries.length();
var i = 0;
function doSomethingWithResult(result)
{
//
};
function executeQuery(result)
{
if(result)
doSomethingWithResult(result)
if(i < ql){
sequelize.query(queries[i]).spread(executeQuery);
i += 1;
}
}
executeQuery();