与沙发库视图匹配的节点 js couchbase 查询调用

Node js couchbase query calls matching with couchbase view

本文关键字:js 节点 couchbase 查询 调用 沙发 视图      更新时间:2023-09-26

我在通过节点 js couchbase 模块将参数传递给视图时遇到问题。主要问题是我不知道该问谷歌什么问题才能得到我正在寻找的答案。我想根据从 UI 接收的键从视图中获取特定对象。

例如,我有一个商店编号为 111、222 和 333 的商店列表。如果用户给我商店编号 222,我只想返回那个,而不是全部返回,然后在我的节点 js 代码中过滤。

节点 js 代码如下所示:

var query = ViewQuery.from('dev_store', 'store').key(storeNum);
myBucket.query(query, function (err, results) {...};

我从ViewQuery API 中得到了这个问题。但是,一旦我进入视图,我就无法弄清楚如何访问该关键参数,以便将我的结果过滤到该商店。

我已经测试了我的观点,它工作正常,只要我只得到所有商店的列表。我读过关于减少的信息,但我还没有看到这些实际上是在哪里写/调用的。

我尝试通过执行doc.key或向视图功能添加键来访问它,但我认为我对视图构造的有限理解在这里伤害了我。

:给定一个键,如何从视图中仅返回与该键相关的行?

编辑:这是我的观点:

function (doc, key,  meta) {
    doc.midLevel.forEach( function ( reg ) {
        reg.midLowerLevel.forEach( function ( dis ) {
            dis.lowestLevel.forEach( function ( store ) {
                emit( store.store_nbr, null);
            })
        })
    })
}

在此视图中,它以最低级别发出每个存储。如节点 js 代码所示,我已经向它传递了一个密钥。我想使用该键来为发出的内容创建一个条件。

例如,如果有编号为 1-100 的商店,并且节点 js 传递数字 45,我是否可以访问视图中的"45"以创建该条件语句?

问:给定一个键,如何从视图中仅返回与该键相关的行?

从表面上看,这个问题与观点无关。 视图绝对不是为了基于对象键返回对象。相反,视图旨在为存储对象的某些属性编制索引,以便可以将这些对象拉到某种列表中。

若要基于键返回文档,需要执行简单的get操作。此方案中的视图查询实际上会降低性能,因为必须从磁盘访问视图。从视图而不是从 RAM get的对象比简单读取慢一个数量级或更慢。

答:使用get,而不是视图。