在couchdb中,我有一个非常简单的map函数,因此我可以有效地通过tripid查找列表:
// by_tripid.js
function (doc) {
if (doc.type == "list") {
for (var tripid in doc.tripids) {
emit(doc.tripids[tripid], null)
}
}
}
目的是通过tripid索引列表。并且能够通过指定密钥(tripid)来检索tripid列表。
在Pouchdb中,我可以在db.query调用中使用大致相同的map函数。
但是,我不希望最终返回所有列表,然后通过tripid过滤它们。这似乎效率很低。我不确定Pouchdb的视图技术。视图是在查询时创建和使用的,所以我猜Pouchdb并没有真正应用地图来创建索引。我想这就像Couchdb中的临时视图,因此效率可能不高。
非常感谢一些专家意见。
谢谢,马特
答案 0 :(得分:2)
有一个开放的issue on github来实现增量视图。
你是对的 - 现在PouchDB每次调用query
时都会对数据库中的每个文档运行map-reduce,因此性能不佳。对于小型数据库,这很好,但显然这对于更大的dbs来说是一个问题。
答案 1 :(得分:1)
PouchDB的query
接口supports传递options.key
。它将在mentioned in the API docs下次发布。
同样有意义的是量化“有多大”的问题是performance suite issue。