RethinkDB:​​根据过滤字段过滤文档

Posted

技术标签:

【中文标题】RethinkDB:​​根据过滤字段过滤文档【英文标题】:RethinkDB: Filter documents based on filtered field 【发布时间】:2020-04-21 14:09:49 【问题描述】:

我有一个文档表 (entity),其中一个字段是对象列表:


    "field":  
        "content": [
             "url": "https://www.google.com" ,
             "url": "" 
        ]
,

    "field": 
        "content": [
             "url": "" 
        ]

我想过滤表格以仅获取那些具有有效内容的文档。有效内容定义为 content 字段,其中至少包含一个带有非空白 url 的项目。

我试过这个,但它抱怨内部过滤功能:

r.db('my_db').table('entity').filter(function (row)
  return row('field': 'content').filter(function (item) 
    return item.hasField('url')
      .and(item('url').ne(''))
  ).count().gt(0)
)

【问题讨论】:

【参考方案1】:

问题不在于过滤 - 我错误地访问了嵌套字段。

这行得通:

r.db('my_db').table('entity').filter(function (row)
  return row('field')('content').filter(function (item) 
    return item.hasField('url')
      .and(item('url').ne(''))
  ).count().gt(0)
)

【讨论】:

以上是关于RethinkDB:​​根据过滤字段过滤文档的主要内容,如果未能解决你的问题,请参考以下文章

如何根据旧值更新 rethinkdb 文档中的字段

Mongoose:聚合获取数组类型字段的文档并根据特定字段过滤这些文档

如何根据MongoDB中文档字段中的每个数组项过滤集合

RethinkDB:​​获取在任何字段中包含字符串的所有文档

仅使用 getOptionLabel 字段进行材质自动完成过滤

GraphQL / Strapi - 无法按字符串字段过滤