node.js - Marklogic|NodeJS API - 字段属性查询

标签 node.js marklogic nosql

我有一个类似于 json 的结构

{
   foo:"bar",
   keyPhrases:[
      {key: "random thing", value: 5},
      {key: "another random", value: 3}
   ]
}

如何对 keyPhrases.key 进行单词查询? 我试过了

qb.word('keyPhrases.key', 'random')

qb.word(qb.property('keyPhrases.key'), 'random')

它不起作用。有任何想法吗?我知道这可以通过 QBE 实现,但对于 Marklogic NodeJS API,您无法指定集合,而我需要指定。

最佳答案

你需要qb.scope() .

var ml = require('marklogic');
var conn = require('./config.js').connection;
var db = ml.createDatabaseClient(conn);
var qb = ml.queryBuilder;

db.documents.query(
  qb.where(
    qb.collection('test'),
    qb.scope(qb.property('keyPhrases'), qb.word('key', 'random'))
  )
  .withOptions({metrics: true})
).result()
.then(function(docs) {
  console.log('This search found: ' + JSON.stringify(docs[1]));
})
.catch(function(error) {
  console.log('something went wrong: ' + error);
});

或者,您可以构建一个基于路径的字段并对其进行查询。

关于node.js - Marklogic|NodeJS API - 字段属性查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30573892/

相关文章:

javascript - 带有 mongodb 点符号的变量

javascript - MarkLogic:按属性值查找

javascript - 如何在服务器上查找 MongoDB 数据。 Docker部署的代码?

c# - Dynamodb 中 client.query 和 Table.query 之间的区别

mysql - 什么样的数据库最适合存储音频文件?

javascript - 找不到模块 './App.svelte' 或其对应的类型声明

node.js - 为什么许多 websocket 库实现自己的应用程序级心跳?

node.js - 使用 ntwitter 在 Node.js 中多次调用 Twitter 流 API

xml - 如何在xpath marklogic中传递变量中的元素名称?