如何在MarkLogic Node.js查询的withOptions中指定map选项以获取键值对?
实现MarkLogic查询结果的Map格式返回
要让查询结果以指定的键值对Map(JSON对象)形式返回,只需在withOptions中添加format: 'map'配置,同时注意索引的顺序——键对应的索引要放在fromIndexes的第一个位置,值对应的索引放在第二个位置。修改后的代码如下:
dbRead.values.read( vb.fromIndexes( vb.range(vb.property(uriElementName), vb.datatype('string')), vb.range(vb.property(versionElementName), vb.datatype('unsignedLong')) ) .where(query) .withOptions({ values: ['descending'], format: 'map' // 配置返回格式为Map }) )
关键细节说明:
format: 'map'会触发MarkLogic将结果封装为JSON对象,第一个range索引(uri字段)的取值作为对象的键,第二个索引(version字段)的取值作为对应键的值。- 若查询存在重复键的匹配项,JSON对象会自动保留排序后优先级最高的那个值(因为JSON不允许重复键)。
- 必须保证两个range索引的顺序与你期望的键值对应关系一致,否则会出现键值颠倒的情况。
内容的提问来源于stack exchange,提问作者Avinash Shukla
相关产品推荐
相关产品推荐

