MarkLogic - node.js 客户端 API - queryBuilder 查询 ID 数组

MarkLogic - node.js Client API - queryBuilder query array of IDs

这个问题类似于:

但这次我需要在 node.js 客户端 API.

中使用 queryBuilder 进行查询

我收集了 100,000 条记录,其结构如下:

<record>
    <pk>1</pk>
    <id>1234</id>
</record>
<record>
    <pk>2</pk>
    <id>1234</id>
</record>
<record>
    <pk>3</pk>
    <id>5678</id>
</record>
<record>
<pk>4</pk>
    <id>5678</id>
</record>

我已经在 id 上设置了范围索引。

我想使用 queryBuilder node.js 客户端 API 编写一个查询,它允许我传入一个 ID 数组并得到一个记录列表。

它需要: 1)查询特定集合 2) 利用范围索引提高性能

没关系,我想出了问题。

db.db.documents.query(
  q.where(
    q.collection('Records'),
    q.or(
        q.value('id', ['1', '2'])
    )
  ).slice(1, 99999999)
)

我最初尝试将一个数组传递给 q.value,但我只得到了有限的结果(得到 10 个,而我预期是 20 个)。所以我觉得我做错了。

事实证明,我只需要对 where 子句进行切片以包含所有内容。显然,如果您不指定服用多少,则默认为 10。

另请注意,当我尝试使用 .slice(0) 时,我得到了一个例外。