我有一张这样的表
{
dummy: [
"new val",
"new val 2",
"new val 3",
"other",
]
}
希望只为#34; new"获取匹配的值,我正在使用这样的查询:
r.db('db').table('table')('dummy').filter(function (val) {
return val.match("^new")
})
但是给出错误
e: Expected type STRING but found ARRAY in
查询有什么问题,如果我删除.match(" ^ new"),它会返回所有值
由于
答案 0 :(得分:0)
您获得Expected type STRING but found ARRAY in
的原因是dummy
字段的值本身就是数组,并且您无法将match
应用于数组。
尽管您尝试的filter
可能看起来令人困惑,但您必须重新考虑一下您的查询:只需将数组重新映射到新的^new
- 键控数组,然后在内部表达式中过滤掉它的值。
例如:
r.db('db')
.table('table')
.getField('dummy')
.map((array) => array.filter((element) => element.match("^new")))
输出:
[
"new val" ,
"new val 2" ,
"new val 3"
]