下面的代码显示了使用节点 js 从图形数据库中提取数据。数据提取得很好,但是当我使用过滤器(在哪里)时,它给出了空结果

Posted

技术标签:

【中文标题】下面的代码显示了使用节点 js 从图形数据库中提取数据。数据提取得很好,但是当我使用过滤器(在哪里)时,它给出了空结果【英文标题】:The code below shows the extracting data from graph db using node js. the data is extracting fine but when I use filter (where) it gives empty result 【发布时间】:2022-01-03 19:12:59 【问题描述】:
    g.v()
  .has('label','Event')
  .not(has('active',false)).as('Event').order().by('createdTimestamp', decr)
  .project('label','event', 'user')
  .by(constant('Livestream'))
  .by(
    __.select('Event')
    .project('id', 'label', 'name', 'cover', 'description', 'allowComments', 'active', 'hashtags', 'partitionValue', 'userId', 'createdTimestamp', 'createdDate')
  .by('id').by('label').by('name').by('cover').by('description').by('allowComments')
  .by(
    coalesce(
      values('active'),
      constant(true)
    )
  )
  .by('hashtags')
  .by('partitionValue').by('userId').by('createdTimestamp').by('createdDate')
  )
  .by(
    __.in('USERcreatedEVENT')
    .project('id', 'privacy', 'label', 'email', 'username', 'name',  'displayPic')
    .by('id').by('privacy').by('label').by('email').by('username').by('name').by('displayPic')
  )
.where(select('privacy').is(eq('PUBLIC')))

这是我需要根据用户隐私过滤的数据的代码。我正在这样做,但它不起作用,你能在这方面帮助我吗?。如果您仍然需要一些信息,请询问我。

【问题讨论】:

【参考方案1】:

如果我猜对了,那么您正在尝试过滤in 顶点的privacy 属性等于public 的结果。

我可以告诉你为什么这个查询返回空结果。因为没有设置privacy 标签,而当你写select('privacy') 时,没有这样的标签,因此与不存在的标签进行相等比较会过滤掉所有内容。

你可以试试:

g.V().
  has('label', 'Event').
  not(has('active', false)).as('Event').
  order().by('createdTimestamp', decr).
  project('label', 'event', 'user').
    by(constant('Livestream')).
    by(
      select('Event').
      project( 'id', 'label', 'name', 'cover', 'description', 'allowComments',
        'active', 'hashtags', 'partitionValue', 'userId', 'createdTimestamp',
        'createdDate').
        by('id').  by('label').  by('name').  by('cover').  by('description').
        by('allowComments').  by(coalesce(values('active'), constant(true))).
        by('hashtags').  by('partitionValue').  by('userId').  by('createdTimestamp').
        by('createdDate')).
    by(
      in('USERcreatedEVENT').
      project( 'id', 'privacy', 'label', 'email', 'username', 'name', 'displayPic').
        by('id').  by('privacy').  by('label').  by('email').  by('username').
        by('name').  by('displayPic')).
  where(select('Event').in('USERcreatedEVENT').has('privacy', 'PUBLIC'))

【讨论】:

以上是关于下面的代码显示了使用节点 js 从图形数据库中提取数据。数据提取得很好,但是当我使用过滤器(在哪里)时,它给出了空结果的主要内容,如果未能解决你的问题,请参考以下文章

如何使用正则表达式从 JSON 结构中提取子节点?

无法使用 THREE.js 导入 Blender 2.79 JSON

GraphQL JS 使用 .graphql 文件从节点 js 进行查询

DiagrammeR 和 MathJax 无法正确呈现 rmarkdown 文档中的图形

如何将 JSON 数据从节点 js 脚本发送到不同服务器上的 HTML 文件

如何使用 API 从 MailChimp 列表中提取订阅者数量?