我正在将ID数组从get查询传递到knex whereIn函数,但它们会丢失。
if(query.cols){
var cols = query.cols.map(Number);
console.log(cols)
search.whereIn('collection_id', cols)
}
我将它们映射到Integers进行查询。控制台日志是...
[ 77, 66 ]
但是调试将查询显示为...
...and "collection_id" in (?, ?)
我错过了什么?
最佳答案
这些值显示为字符串,因为knex
要求将数组作为参数传递到包含数组中。从raw bindings的文档中:
您可以通过在数组本身内传递cols
数组来解决此问题:
if (query.cols) {
var cols = query.cols.map(Number);
console.log(cols)
search.whereIn('collection_id', [cols])
}
关于javascript - 数组未传递给knex中的查询,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39598051/