标签: pouchdb

PouchDB +冲突解决方案

关于硬话题,我有一个非常简单的问题:

如何在PouchDB中解决冲突?

我查看了文档,以及快速谷歌搜索,但它没有帮助.那么,如何处理使用PouchDB的应用程序中的冲突管理?

javascript pouchdb

1
推荐指数
1
解决办法
1752
查看次数

我可以使用 pouchdb 来存储图像吗

我正在寻找一种简单的方法来处理移动应用程序中的离线/在线情况。看来 pouchdb 是与 cloudant 配对使用的一个有趣的选择。但是用它来存储图像等二进制数据是个好主意吗?或者存储大小或其他方面是否有限制?

cloudant pouchdb

1
推荐指数
1
解决办法
2756
查看次数

Couchdb 查询视图限制

在视图中查询文档时,如果limit未提及参数,显示的文档数量是否有限制?

这个链接确实说Columns can be a list of values, there is no set limit to the number of values or amount of data that columns can hold.

但不确定这是否意味着我们可以将任何数字作为限制或默认情况下没有限制。我只想知道默认情况下如果没有提到限制参数,输出文档的数量是否有限制?

couchdb pouchdb

1
推荐指数
1
解决办法
3343
查看次数

如何在 pouchDB 中查询复杂的键?

如果我要提出一个 get 请求,我会做这样的事情:

https://myserver.com/sometestdb/_design/sortJob/_view/index?limit=100&reduce=false& startkey=["job_price"]&endkey=["job_price", {}]

对于地图查询,如:

function(doc) {
    if (doc.data.type === "job") {
        emit(["job_ref", doc.data.ref], null);
        emit(["job_price", doc.data.price], null);
    }
}
Run Code Online (Sandbox Code Playgroud)

我将如何使用 pouchDb查询复制查询?我在开始和结束键周围尝试了一些东西,但没有运气:

{
  include_docs: true,
  startkey: 'job_price',
  endkey: 'job_price,{}'
}

{
  include_docs: true,
  startkey: 'job_price',
  endkey: 'job_price\uffff'
}
Run Code Online (Sandbox Code Playgroud)

这两个都返回 0 结果,而我使用的链接产生了预期的结果。

注意:我可以确认数据存在于我的 pouchDB 中,因为我已经使用pouch-find插件对其进行了查询,但我正在尝试各种技术以查看哪个更快。

编辑:根据文档中的复杂键部分,我应该能够执行以下操作:

{
  include_docs: true,
  startkey: '[\'job_price\']',
  endkey: '[\'job_price\',{}]'
}
Run Code Online (Sandbox Code Playgroud)

但这导致:

没有行可以匹配您的键范围,反转您的 start_key 和 end_key 或设置 {descending : true}

但是我应该能够得到这样的结果并且不想要descending: true.

couchdb nosql pouchdb

1
推荐指数
1
解决办法
828
查看次数

Couchbase Sync Gateway:每个数据库有多个存储桶

我盯着用CouchDB建立一个服务.该应用程序旨在让用户拥有无限的存储桶,原因有几个,而且效果很好.现在我因为一些企业功能而转向Couchbase.我正在使用PouchDB,这就是我需要Sync Gateway的原因.可悲的是,我只能映射一个桶/数据库.

这对我来说是一个完美的解决方案:/ db/bucket/etc.

任何想法如何实现这一目标?

couchdb couchbase pouchdb couchbase-sync-gateway

0
推荐指数
1
解决办法
1190
查看次数

PouchDB / CouchDB中_id的最佳做法

TL; DR:如果选择使用文档的addresslastname中的字段_id,您将如何处理在多设备(有时是脱机)环境中的扩展address以及lastname扩展方式。


在文档_id中使用将来可能会更改的字段时,我正在寻找最佳实践。例如,address和/或lastname。不仅客户的地址可以更改,而且如果用户错误输入了错误的地址怎么办?如果在跨设备复制文档并在多个设备上更新文档之后才发现错误,该怎么办?

有没有办法处理_ids的更新?例如,用一个新文件创建一个全新文件_id并删除旧文件?但这是否可以在多设备,有时甚至是离线世界中扩展?

例如:

{
  "_id": "Jane-Smith",
  "address": "44 street, Boston, MA 93999",
  "telephone": "8888888888"
}
Run Code Online (Sandbox Code Playgroud)

要处理有多个同名客户的情况,在客户名中添加一些内容是否有意义?

{
  "_id": "Jane-Smith-7ae78c",
  "address": "44 street, Boston, MA 93999",
  "telephone": "8888888888"
}
Run Code Online (Sandbox Code Playgroud)

优点:

  1. 节省空间
  2. 由于_id是主键,因此使用_id的搜索速度更快

缺点:

  1. 如果_id更改中使用了属性该怎么办?搜索将对陈旧的数据执行。如果使用更新后的文档创建新文档,则_id可能已进行脱机更改的同步数据库的实现是什么?

更新:

这篇文章很有帮助:

https://davidcaylor.com/2012/05/26/can-i-see-your-id-please-the-importance-of-couchdb-record-ids/

我没有意识到_ids可以由address 组成lastname但是,如果客户的地址和/或名称发生变化怎么办?

我正在设法把正确的方法存储customer在PouchDB / CouchDB中。

couchdb nosql pouchdb

0
推荐指数
1
解决办法
969
查看次数

我需要在pouchdb和pouchdb-find中进行不区分大小写的搜索

我的项目运行正常,唯一的问题是搜索是否区分大小写。它可以很好地搜索子字符串,但是如果我输入“ Test”,它将忽略“ test”作为有效结果。

我正在使用pouchdb-find来使搜索更容易,并且与混浊搜索和限制/跳过分页参数更加相关。

我正在使用ion-searchbar为用户键入查询的字符串。

这是我的控制器代码节选:

@Component({
    selector: 'page-notas',
    templateUrl: 'notas.html'
})
export class NotasPage {
    notas: Array<Object> = [];
    zone: any = new NgZone({ enableLongStackTrace: false });
    db: any = new PouchDB('banco_de_dados.bd');
    db_limit = 10;

    pouch_query: object = {
        selector: { data_emissao: { $gt: null } },
        sort: [ {'data_emissao' : 'desc'} ],
        limit: 10,
        skip: 0,
    };

    constructor(
        private scanner: BarcodeScanner,
        private toastCtrl: ToastController,
        private googleAnalytics: GoogleAnalytics,
        public …
Run Code Online (Sandbox Code Playgroud)

couchdb pouchdb ionic3

0
推荐指数
1
解决办法
1030
查看次数