在数组内重新思考数据库匹配

rethinkdb match inside an array

提问人:vderelle 提问时间:9/5/2016 最后编辑:vderelle 更新时间:9/5/2016 访问量:426

问:

我有一个名为“conditions”的表,其中包含结构如下的JSON文档:

{
 "keyA": "valueA",
 "keyB": "valueB",
 "symptoms": ["foobar", "bar", "cough", "itch"]
}

我只想执行一个查询,该查询返回所有具有与正则表达式匹配的症状的文档。

我得到的最接近的是这个查询:

r.db('database_name').table('conditions').filter(r.row('symptoms').nth(0).match('oob'));

这将返回文档(行),因为它与第 0 个元素“foobar”匹配。

但是,我根本无法找到一种遍历整个数组的方法。例如,如果“foobar”是“症状”数组中的最后一个元素,则它不会匹配。

任何帮助将不胜感激, 谢谢

编辑:我自己想通了。下面是有效的查询:

r.db('database_name').table('conditions').filter(function(row){
  return row('symptoms').contains(function(symptom){
     return symptom.match('foo')
  })
})
数组匹配 rethinkdb

评论


答: 暂无答案