Pouchdb 如何使用单个查询数据库获取多个文档

Pouchdb 如何使用单个查询数据库获取多个文档,pouchdb,Pouchdb,我是pocuhDB的新手, 我想在一次查询中获得多个文档 这是我的文档结构:考虑以下4个文档 { "type": "SHIP", "regNumber": "11" }, { "type": "SHIP", "regNumber": "29" }, { "type": "SHIP", "

我是pocuhDB的新手, 我想在一次查询中获得多个文档

这是我的文档结构:考虑以下4个文档

{
"type": "SHIP",
"regNumber": "11"
},

{
"type": "SHIP",
"regNumber": "29"
},

{
"type": "SHIP",
"regNumber": "22"
},

{
"type": "SHIP",
"regNumber": "67"
}
我想获取与我在其他数组中的regNumber匹配的所有文档: myArray=[11,22,67]

预期产出:

    {
    "type": "SHIP",
    "regNumber": "11"
    },

    {
    "type": "SHIP",
    "regNumber": "22"
    },

    {
    "type": "SHIP",
    "regNumber": "67"
    }

提前谢谢你

如果使用couchbase,请使用以下查询

SELECT t.*
FROM default AS t USE KEYS ["11","22","67"];

这可以通过PockDB Mango查询轻松实现,特别是使用$in操作符

假设需要同时按类型和任意数量的regNumber项进行查询,则该策略是直接的。首先创建索引,例如在代码段中:

  // create the index
  await db.createIndex({
    index: {
      fields: ['type', 'regNumber'],
      ddoc: "type-regNumber-index"
    }
  });
其中字段定义要索引的文档字段;ddoc命名索引

之后,构造一个查询就很简单了;再次回到片段

  const query = {
    "selector": {
      "$and": [{
          "type": type
        },
        {
          "regNumber": {
            "$in": regNumbers
          }
        }
      ]
    },
    "use_index": "type-regNumber-index"
  }
其中,regNumbers是一个值数组,并键入字符串值

运行并阅读代码片段,我已尽量将其最小化

//查找按钮单击处理程序 const regNumberQuery=asynctype,regNumbers,viewResult=>{ 常量查询={ 选择器:{ 美元及:[{ 类型:类型 }, { 注册号:{ $in:regNumbers } } ] }, 使用索引:键入regNumber索引 } //质疑 const result=await db.findquery; //显示结果 if result.docs.length{ //清除先前的结果 viewResult.innerHTML=; result.docs.forEachdoc=>{ //将文档显示为行 const pre=筒子架'pre'; pre.innerText=['type:',type'\nRegnNumber:',doc.regNumber]。加入“”; pre.classList.add'border-bottom'; viewResult.appendChildpre; }; }否则{ //没有结果 viewResult.innerHTML='无结果'; } //显示查询,即选择器。 const pre=筒子架'pre'; pre.innerText=JSON.stringifyquery,null,3; viewResult.appendChildpre; } // //样板代码 // //罐装测试文件 const getDocsToInstall==>{ 返回[{ 类型:船舶, 注册编号:11 }, { 类型:船舶, 注册号码:29 }, { 类型:船舶, 注册号码:22 }, { 类型:船舶, 注册编号:67 } ] } //初始化数据库实例 让db; const initDb=async=>{ //创建内存中的数据库 db=新的db‘测试’{ 适配器:“内存” }; //添加测试文档 等待db.bulkDocsgetDocsToInstall; //创建类型/regNumber索引 等待db.createIndex{ 索引:{ 字段:['type','regNumber'], ddoc:type regNumber索引 } }; } //初始化数据库,然后显示搜索控件。 initDb.then=>{ getElg\u view\u result.classList.remove'hide' }; //便利 const getEl=id=>document.getElementById; const creEl=id=>document.createElementid; .隐藏{ 显示:无 } .标签{ 文本对齐:右对齐; 右边距:1米; } .提示{ 左边距:1米; 字体大小:较小; } .边框顶部{ 边框顶部:1px实心; } .边框底部{ 边框底部:1px实心; 填料:1米1米; } 注册编号,例如11,29,22,67 类型,例如船舶 发现
感谢您添加评论。但我想得到实用的文档,它使用pouchDB@KrunalLathia由于您没有使用Couchbase,我将删除您问题中的所有Couchbase标记。