Marklogic (Nodejs API) - 搜索与对象数组属性中的 2 个(或更多)条件匹配的文档

2023-12-23

我的文档存储在 marklogic 中的 JSON 中,如下所示(我删除了我的案例中无用的属性):

{
  documentId: '',
  languages: [{
    locale: 'en_UK',
    content: {
      translated: 'true',
    }
  }, {
    locale: 'de_DE',
    content: {
      translated: 'false',
    }
  }, {...}],
}

edit:看来我的“无用”属性引起了一些问题。这是我的详细对象。

{
  documentId: '',
  /* 4 attrs */,
  languages: [{
      locale: 'en_UK',
      attr: '',
      content: {
      /* 14 attrs */,
        translated: true,
        /* 2 or 4 attrs */,
      }
    }, {
      locale: 'de_DE',
      attr: '',
      content: {
        /* 14 attrs */,
        translated: false,
        /* 2 or 4 attrs */,
      }
    }, {...}
  ],
  /* 0 or 2 attrs */
}

我尝试查找其中至少包含一个对象的所有文档语言 where 语言环境 = 'en_UK' and 内容.翻译 = true with

var query =
  qb.where(
    qb.directory('myDocuments'),
    qb.scope(
      qb.property('languages'),
      qb.and(
        qb.scope(qb.property('code'), qb.term('en_UK')),
        qb.scope(qb.property('translated'), qb.term('true'))
      ),
      qb.fragmentScope('properties')
    )
  );

and

qb.where(
  qb.directory(myDocuments'),
  qb.scope(qb.property('languages'),
    qb.propertiesFragment(
      qb.value(
        qb.property('languages'),
        qb.and(
          qb.scope(qb.property('code'), qb.term('en_UK')),
          qb.scope(qb.property('translated'), qb.term('true'))
        )
      )
    )
  )
)

但在这两种情况下,查询都会返回与整个文档中的两个条件匹配的文档,而不是在每个对象中语言 array.

我阅读了文档,但没有找到任何内容。您对我如何进行查询有什么想法吗?

edit:我尝试了近查询,但它不起作用。它与好的文档不匹配。

qb.where(
  qb.directory(config.marklogicConfiguration.product),
  qb.scope(qb.property('languages'),
    qb.near(
      qb.and(
        qb.scope(qb.property('code'), qb.term('ja_JP')),
        qb.scope(qb.property('translatedInTheLanguage'), qb.term('true'))
      ),
      1,
      qb.weight(0),
      qb.ordered(true)
    )
  )
)

我会问我是否可以改变我的对象结构。

edit2:最后我使用Xquery请求得到了正确的结果。

xdmp:directory("/product/direcory/")/languages[code eq "ja_JP" and content/translated eq "true"] ! root(.)

就我而言,我使用 eq 来内容/翻译条件,因为我的布尔值存储为字符串。!root(.):返回整个对象,而不仅仅是符合条件的语言对象[代码 eq“ja_JP”和内容/翻译 eq“true”]


尝试使用近查询 http://docs.marklogic.com/guide/search-dev/structured-query#id_48512, 中的一个结构化查询中可用的位置限定符 http://docs.marklogic.com/guide/node-dev/search#id_92125。提供您的区域设置和翻译后的查询,指定distance: 1 and ordered: true。请注意,这是否有效取决于您删除的“无用属性”所在的位置。

如果这不起作用,您可能需要在结构中引入另一层。

{
  documentId: '',
  languages: [{
    item: {
      locale: 'en_UK',
      content: {
        translated: 'true',
      }
    }
  }, {
    item: {
      locale: 'de_DE',
      content: {
        translated: 'false',
      }
    }
  }, {...}],
}

那不是很漂亮,但它可以让你运行容器查询 http://docs.marklogic.com/guide/search-dev/structured-query#id_87231.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Marklogic (Nodejs API) - 搜索与对象数组属性中的 2 个(或更多)条件匹配的文档 的相关文章

  • 避免 XDMP-EXPNTREECACHEFULL 并加载文档

    我正在使用 marklogic 4 并且有大约 15000 个文档 每个文档大约 10 KB 我想将整个内容作为文档加载 并将所有文档转换为单个 csv 文件并输出到 HTTP 输出流以供下载 当我以这种方式加载文档时 let uri ct
  • 在 MarkLogic 8 中调用具有来自其余端点的依赖项的 xquery 库

    我们正在从 MarkLogic 6 升级到 8 并且在调用库模块时遇到了一些问题 我们有 xquery 库模块 可以从自定义 REST 扩展和非 REST xquery 调用 马克逻辑公司文档表示 REST 端点可以使用通过新 ext 端点
  • 无法从 CPF 操作模块内创建 MarkLogic 计划任务

    我有一个 MarkLogic 数据库内容处理框架 CPF 已安装且 CPF 管道如下 每当插入文档时 它都会获取以下值执行日期从文档中并安排当时的任务 Example 样本文件
  • MarkLogic 8 - 将大型结果集流式传输到文件 - JavaScript - Node.js 客户端 API

    假设我有一个查询将返回一个非常大的响应 可能有数千条记录 也可能有千兆字节的数据 通常在用户界面中 我们只显示该数据的单个页面 现在我需要一个选项来获取整个结果集并将其流式传输到文件中 然后用户可以在闲暇时去下载这个 那么 如何使用查询生成
  • MarkLogic XML 到 JSON 的转换

    我正在尝试将此 XML 文件转换为 JSON 但无法取得任何成功 我的 XML 中有两个子元素 但它只返回最后一个 如何获取 JSON 格式的两条记录 XML
  • 在 Marklogic Javascript 中实现 For 循环?

    我可以使用下面的 XQuery 获取集合中文档的所有 URI for doc in fn collection transform return xdmp node uri doc 但是 当我尝试在 MarkLogic 的 Javascri
  • 来自 JSON 字符串数组的 MarkLogic TDE Xpath 值

    我想构建一个 tde 其中包含一行 其中包含 id 和原始文档中数组的每个值 我为每个元素获取一行 但值为空并被忽略 似乎如果上下文设置为不是数组的任何内容 uri 可以工作 但当上下文是数组时则不会 除了简单的示例之外 我正在努力寻找 M
  • 由不受信任的机构颁发的证书链

    我正在使用curl 终端并发出以下命令 curl anyauth user admin admin https localhost 8000 LATEST search q caesar 我收到以下警报 curl 77 schannel 下
  • 从另一个本地主机访问 markLogic

    我正在尝试使用 markLogic 作为文档存储库并编写一个可以从我的本地主机 Apache 访问它的客户端 在 markLogic 中 我创建了一个新的 REST 服务器 8011 现在我想通过 希望简单的 HTTP 请求 实际上使用 j
  • MarkLogic - 带有 REST API 的 CORS

    我有一个基于 MarkLogic 的 Web 应用程序 它从两个源提取数据 一个文档存储和一个三重存储 两者都托管在我的 MarkLogic 服务器上 该应用程序使用 MarkLogic 的内置 REST API 来访问这些数据存储 文档存
  • 在 MarkLogic 中处理禁运内容场景

    我有一个 MarkLogic 7 数据库 其中插入了多个文档 每个文档都有自己的created on and released on 举例来说 如果将文档插入到数据库中1400小时及其released on值为1700小时然后我需要将此文档
  • Marklogic Eclipse 设置

    我一直在尝试使用 marklogic 设置 eclipse 以将其用作我的 xquery 编辑器 我按照 Marklogic 关注此链接 http developer marklogic com learn xqdt setup http
  • 跨集群访问日志

    我有一个包含 3 个节点的集群 我已经配置了应用程序服务器的数据库 我想知道集群中各主机生成的访问日志是否相同 或者每个主机都有一个单独的 访问日志 用于记录对其主机的请求 我知道集群中的每个主机都维护自己的审核日志文件 访问日志的工作方式
  • 尝试运行 XQuery 脚本以单点登录 MarkLogic 时出错

    我正在研究使用 xquery 重写器脚本来自动登录单点登录解决方案 我从端口 8001 的管理应用程序服务器开始 在应用程序服务器配置中 我有 设置身份验证 application level 设置 url 重写器 rewriter xqy
  • 如何获取Marklogic数据库中的文档总数?

    我在 Marklogic 数据库中有大约 20 个 lacs 文档 我想要我的搜索应用程序中的文档总数进行分页 为了获得我正在使用的总数 xdmp estimate cts search doc query 其中 query 是各种查询的组
  • 使用索引数据计算非结构化文档中的所有唯一单词

    我已将非结构化 HTML 文档加载到 Marklogic 中 并且 对于任何给定的文档 URI 我需要一种使用索引 词典来提供所有唯一单词的字数统计的方法 例如 假设我有以下文件 保存在 URI html example html 下 h1
  • 有没有查看/编辑/删除Marklogic文档的工具

    有没有什么工具可以view edit deleteMarklogic 的文档 比如 Mongo Management Studio for MongoDb MarkLogic 内置了对 WebDav 的支持 您可以在管理控制台中创建 Web
  • ml-gradle 是否提供任何功能来根据可用区域部署林拓扑?

    ml gradle 是否提供了任何功能 让我可以在考虑可用区的情况下部署副本林拓扑 或者 MarkLogic 提供的任何 API 来了解哪个节点位于哪个可用区 以便我可以为林副本部署定义自己的逻辑 None
  • 如何向节点的所有特定子节点添加属性

    我有以下节点 我想在其中向所有节点添加属性add nodes
  • 使用 cts:query 检查属性是否缺失

    我有一个 XML 片段 我希望根据 id 属性的存在进行不同的查询

随机推荐

  • 为什么 Pandas 默认会迭代 DataFrame 列?

    尝试了解 Pandas 某些功能背后的设计原理 如果我有一个包含 3560 行和 18 列的 DataFrame 那么 len frame 是3560 但是 len a for a in frame is 18 也许对于来自 R 的人来说这
  • MySQL 事务难题

    我需要在单个原子事务中执行多次插入 例如 开始交易 插入 插入 commit 然而 当 MySQL 遇到错误时 它只会中止导致错误的特定语句 例如 如果第二个插入语句中有错误 提交仍然会发生 并且第一个插入语句将被记录 因此 当发生错误时
  • 如何处理使用相同库的许多 Web 应用程序的共享库

    我们有一个用 Java 制作的 Web 应用程序 它使用了 struts2 spring 和 JasperReport 该应用程序在 glassfish 4 0 上运行 应用程序的库位于 WEB INF lib 文件夹中 并且在 glass
  • 一次性渲染到完整的 3D 渲染目标

    使用 DirectX 11 我创建了一个可以绑定为渲染目标的 3D 体积纹理 D3D11 TEXTURE3D DESC texDesc3d texDesc3d Usage D3D11 USAGE DEFAULT texDesc3d Bind
  • 适用于 Windows 8 Metro 应用程序的免费 PDF 编写器 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Rails 和 标签

    我对 Ruby on Rails 相当陌生 我正在尝试使用 滑动门 技术创建一些精美的 CSS 按钮 我几乎可以正常工作了 但我觉得必须有更好的方法来处理链接的标签 我目前正在做的方式 这本身并不可怕 但我想知道这是否是在 RoR 中处理跨
  • 为什么 Windows 32 位称为 Windows x86 而不是 Windows x32? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 Windows 操作系统可以是 32 位或 64 位 这64 bit版本称为Windows x64但是32 bit版本称为Windows
  • 使用 Anaconda 下载 Random.py

    我正在尝试下载随机模块 想知道是否复制代码并将其放入文件编辑器中 如何通过 pip 安装它 我将代码放在记事本中 并将其保存在桌面上 名称为 random py 我现在该怎么做才能通过 anaconda 安装它 我尝试了 pip insta
  • Django:扩展用户模型与创建用户配置文件模型

    我正在 Django 中创建一个应用程序 到目前为止我一直在使用扩展用户模型 如下所示 class MyUser AbstractBaseUser 包含所有用户和个人资料信息 但我看到很多人在堆栈溢出上为个人资料和用户本身创建不同的模型 使
  • 在正则表达式替换中捕获字符串

    根据我从 Pharo 正则表达式文档中收集到的信息 我可以定义一个正则表达式对象 例如 re foo re bar asRegex 我可以通过以下方式将匹配的正则表达式替换为字符串 re copy foobar blah rebar rep
  • ASP.NET MVC 从单个视图向相关多个表添加记录

    我对 MVC 很陌生 所以如果我没有正确解释我的要求 没有使用正确的术语 我深表歉意 我有一个简单的数据库item and detail实体 它们具有一对多的关系 因此 Item 有许多详细信息 我想从单个视图向这两个表添加记录 到目前为止
  • 如何更改 UISearchBar 占位符和图像色调颜色?

    我已经尝试了几个小时的搜索结果 但我无法弄清楚这一点 也许这是不可能的 我正在尝试更改占位符文本和 UISearchBar 放大镜的色调颜色 如果重要的话 我只针对 iOS 8 0 这是我的代码以及现在的样子 let searchBar U
  • Robotium:如何在 Intellij IDEA 中为现有项目创建测试项目?

    我一直在为现有项目创建一个测试项目 对于 Eclipse 来说很简单 但是对于 IntelliJ 我被迫在工作场所使用它 我真的不知道如何使用 Robotium 框架测试项目 如果有人可以写一些明确的步骤来解释这一点 我将不胜感激 在 In
  • 为什么 Python 中的某些列表方法仅适用于已定义的变量? [复制]

    这个问题在这里已经有答案了 gt gt gt a 1 2 3 gt gt gt a append 4 gt gt gt a 1 2 3 4 But gt gt gt 1 2 3 append 4 gt gt gt Why do list h
  • Swift 中的多维数组

    编辑 正如 Adam Washington 指出的那样 从 Beta 6 开始 这段代码按原样工作 所以这个问题不再相关 我正在尝试创建并迭代二维数组 var array Array count NumColumns repeatedVal
  • 如何使用Excel VBA确定文件编码类型

    我构建了一个 Excel VBA 工具来验证 csv 文件 以确保它们包含的数据有效 它们的 csv 可以来自任何地方 来自完整的 UNIX 系统或从 Excel 保存数据的桌面用户 Excel 工具被发送给企业 以便他们可以在自己的环境中
  • 如何创建列表集合的深层副本

    假设我有以下课程 public class Author public int ID get private set public string firstName get private set public string lastNam
  • 无法在我的 Android 应用程序中播放 mp4 视频

    我非常想在我的 Android 应用程序中播放 mp4 视频 我什至为它写了一些代码 String sourceUrl http tvstream cn ru storage 1kanal 20120530 1kanal 20120530
  • C++ 重写方法

    我不明白这是怎么回事 我有一个场景类 它具有实体向量 并允许您从场景中添加和获取实体 class Scene private PRIVATE DATA vector
  • Marklogic (Nodejs API) - 搜索与对象数组属性中的 2 个(或更多)条件匹配的文档

    我的文档存储在 marklogic 中的 JSON 中 如下所示 我删除了我的案例中无用的属性 documentId languages locale en UK content translated true locale de DE c