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