- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我用谷歌搜索了一些示例和教程,但找不到适合我的案例的任何明确示例。
我从我的服务器收到一个 JSON 响应,如下所示:
var heroes = [
{
id: 5,
name: 'Batman',
realName: 'Bruce Wayne',
equipments: [
{
type: 'boomarang',
name: 'Batarang',
},
{
type: 'cloak',
name: 'Bat Cloak',
},
{
type: 'bolas',
name: 'Bat-Bolas',
}
]
},
{
id: 6,
name: 'Cat Woman',
realName: 'Selina Kyle',
equipments: [
{
type: 'car',
name: 'Cat-illac',
},
{
type: 'bolas',
name: 'Cat-Bolas',
}
]
}
];
我想查询例如:“获取装备类型为 bolas 的英雄”它应该在一个数组中返回两个英雄对象。
我知道这是不对的,但我想做的是形成一个像这样的 map 函数:
function myMapFunction(doc) {
if(doc.equipments.length > 0) {
emit(doc.equipment.type);
}
}
db.query(myMapFunction, {
key: 'bolas',
include_docs: true
}).then(function(result) {
console.log(result);
}).catch(function(err) {
// handle errors
});
这可能吗?如果不是,我有什么选择?
P.S:我还检查了 LokiJS 和 underscoreDB。然而,PouchDB 看起来更复杂并且能够进行此类查询。
先谢谢大家
最佳答案
你的 map 功能应该是:
function myMapFunction(doc) {
doc.equipments.forEach(function (equipment) {
emit(equipment.type);
});
}
然后查询,你使用{key: 'bolas'}
:
db.query(myMapFunction, {
key: 'bolas',
include_docs: true
}).then(function (result) {
// got result
});
那么你的结果会是这样的:
{
"total_rows": 5,
"offset": 0,
"rows": [
{
"doc": ...,
"key": "bolas",
"id": ...,
"value": null
},
{
"doc": ...,
"key": "bolas",
"id": ...,
"value": null
}
]
}
另外一定要先建立索引!详情在PouchDB map/reduce guide :)
关于javascript - 查询 PouchDB 中的嵌套对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28273588/
在 Pouchdb 中,处理多个数据集合的最佳方式是什么?我的意思是,例如,我需要多个待办事项列表,而不是一个简单的待办事项列表,例如:家庭待办事项、工作待办事项、社区待办事项和生态待办事项。 我应该
https://pouchdb.com/guides/compact-and-destroy.html 中的 PouchDB 文档引起了我的注意。 : By default, PouchDB and
PouchDB最佳实践建议是使用 PUT而不是 POST用于创建新文档(类似于 rdbms 中的一行),主要是因为后者会生成一个随机 ID,这使得后续数据排序效率低下。 PUT另一方面,需要提供用户生
我来自 Mysql 背景,现在正在使用 Pouchdb。我习惯了每个应用程序有 1 个数据库和许多表的 SQL 模式。 在 pouchDB 中则不同,因为数据不是存储在表中而是存储在文档中。因此,在我
我不知道在哪里可以捕获在 pouch 中访问远程 couchdb 的失败尝试。例如: var testPouchDB = new PouchDB('http://remotedb-url/non-ex
我在 pouchdb 中有一些数据,我想显示 pouchdb 中的总行数,我该怎么做? angular.module("pouchapp", ["ui.router"]) .run(function(
在浏览器中处理与同一远程/本地数据库同时同步的多个 PouchDB 实例的推荐方法是什么? 我的设置是浏览器中的一个 Web 应用程序,它与远程 CouchDB 持续同步。 该 Web 应用程序可以多
有没有办法更新文档的id?我试图通过以下代码实现这一点,但这会引发错误(如下): this.db.get('oldId') .then(document => { this.logshee
我正在使用 PouchDB 和 node.js 将我的文档存储在服务器上,但在开发过程中,许多有缺陷或需要删除的文档已经开始在数据库中积累。 是否有像 SQL Studio 这样的 GUI 客户端,它
我使用 CouchDB 作为后端,使用 PouchDB 在 vuejs 应用程序中查询/同步数据库。 我有 4 种不同类型的文档都存储在一个数据库中,如上所示: { "_id": "patient
CouchDB 文档: "members": [ { "name": "Mark", "age": 35, }, { "name": "
我在使用 pouchdb-find 创建索引以在 pouchDB 中搜索时遇到了一些麻烦.我一直收到错误 找不到可用的索引。尝试在以下位置创建索引:dateCreated。确保只有 $eq、$gt、$
我正在尝试将我的 redux 状态同步到 PouchDB 实例,但遇到了问题。 正如日志中所示,在操作发生后,我的 redux 状态既没有同步到 PouchDB,PouchDB 文档也没有在更新时同步
首先,我对使用 cloudant 还很陌生,所以这对我来说是一个非常陡峭的学习曲线。任何帮助表示赞赏。到目前为止我能找到的所有信息都来自几年前看似过时的 SO 帖子。 我已经设置了一项在我的资源列表中
首先,我对使用 cloudant 还很陌生,所以这对我来说是一个非常陡峭的学习曲线。任何帮助表示赞赏。到目前为止我能找到的所有信息都来自几年前看似过时的 SO 帖子。 我已经设置了一项在我的资源列表中
我正在使用 Angular5 项目测试 PouchDB。我想使用这些 pouchdb 插件: pouchdb-find relational-pouch 所以我知道如何导入 PouchDB: impo
我是 pouchdb 和 nw.js 的新手,可能这个问题有点太简单了(抱歉我的无知)。 我试图通过 require() 在 nw.js 项目中使用 pouchdb,但没有成功。 根据 pouchdb
在 PouchDB 中设置了一个continuous(实时)复制之后,我如何找到这些(比如 _replicate 或 _replicator 的事件任务)在 CouchDB 中)? 或者更确切地说,我
我在应用程序启动时建立同步(与事件监听器),我需要停止它并再次运行。有一个 .cancel() 函数可以工作,但我如何才能重新启动同步? 我试图删除在 cancel() 之后从 sync() 函数返回
假设我们将以JSON对象表示的汽车(约40MB)存储在PouchDB中,并且我们想基于马力属性进行搜索。 sql中的示例:从HP> 100的汽车中选择*。 您可以按键查询pouchDB,但是显然HP并
我是一名优秀的程序员,十分优秀!