我一直在探索使用PouchDB作为栅格地图图块的离线缓存.具体来说,对于Leaflet.我刚刚完成了一些我认为可以分享的初步测试.
我正在将 PouchDB 与 nodejs 一起使用。创建数据库时,会创建一个以数据库名称命名的目录。如何更改创建此目录的位置?
我从couchdb(couchappy.com)复制了pouchDB.复制不是实时的.我只是在某些条件下运行它(例如,应用程序的加载/初始化,最终用户更改某些选项等).
我删除了couchdb中的一些文档,这些文档在pouchdb中显示为"已删除".然后我想压缩我的pouchdb:db.compact()调用.但这个电话似乎对删除的文档没什么作用.
请注意,我已经压缩了counchdb.
我正在使用pouchdb 2.2.0.
你们其中任何人都知道什么是compact()调用实际上在pouchdb上做什么?另外,如何摆脱"删除"的文档?
干杯,阿尔贝托
我创建了一个带有"_id","name"和"status"字段的pouchDB文档.但是,我发现如果我想更新文档的"status"字段,那么我还需要指定我不会改变的所有其他字段,否则它们会被删除.也就是说,如果我在更新时没有指定"名称"字段,则文档上将不再有"名称"字段.
function createFriendSchedule(friend){
pouchDB.put({
_id : friend['id'],
name : friend['name'],
status: "new"
}, function(err, response){
createAndDispatchEvent("friend Schedule created");
});
}
Run Code Online (Sandbox Code Playgroud)
这是更新文档的代码
function changeFriendStatus(friend){
pouchDB.get(friend['id'], function(err, retrieved){
pouchDB.put({
_id : friend['id'],
_rev : retrieved._rev, //need to specify _rev otherwise conflict will occur
name : retrieved.name, //if you don't specify name should remain the samme as before, then it will be left off the record!
status : friend['status']
}, function(err, response){
if(err){
console.log("COULDN'T CHANGE FRIEND STATUS");
} else { createAndDispatchEvent("friend status changed") …Run Code Online (Sandbox Code Playgroud) 当我尝试将数据库从PouchDB复制到CouchDB时,我遇到了问题. 
这是我用于数据库复制的代码
var db = new PouchDB('todos');
var remoteCouch = 'http://localhost:5984/db/';
function sync() {
var opts = {live: true};
db.replicate.to(remoteCouch, opts);
};
Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个Web应用程序以及移动应用程序(使用PhoneGap).我正在使用HTML5/CSS/JS,因为我必须与PhoneGap兼容.我需要我的移动应用程序可用并离线工作(我应该能够至少将数据推送到数据库,不太关心检索它,可以限制用户上线获取数据).我知道它有点奇怪,但这就是我的要求.
我以某种方式降落到PouchDB上.在编写PhoneGap应用程序时,它似乎可以像我一样使用SQLite插件.正如这里所讨论的:http://pouchdb.com/adapters.html(Cordova/PhoneGap的SQLite插件) - 我知道它可以无缝脱机工作并在线时与PhouchDB同步,而无需任何开发人员干预.
我不想再浪费时间,只是盲目地使用PouchDB.我想在探索它之前确认它的功能.
注意:我的数据大部分都是普通文本,每次写入数据库时都会有一个图像.(我需要存储图片 - 在某个地方,也应该很容易在线和离线 - 欢迎任何建议在这里欢迎)
感谢和问候,
inblueswithu
我正在开发一个离线工作的原型网站,该网站利用Pouch DB,以便在它上线时同步回服务器上的CouchDB.
该袋DB冲突指导说:
要解决冲突,您可以在当前获胜者的基础上添加()新修订.
你怎么做到这一点?我尝试了以下功能但是没有按预期工作:
function (current, chosen) {
chosen._rev = current._rev;
chosen._conflicts = [];
db.put(chosen);
};
function (chosen) {;
db.put(chosen);
};
Run Code Online (Sandbox Code Playgroud)
top函数有两个文档:
我在某些地方(比如这里)读到删除丢失的冲突是必要的,但如果可能的话我宁愿不删除任何内容,而Pouch DB指南也没有提到这一点.
如何在PouchDB中删除数据库以再次释放磁盘空间?删除仅设置参数_deleted并保留记录的数据.
但是,如何以实际摆脱它们并节省一些空间的方式删除记录?
因为我想不时地重置数据库所以它不会太大.
我有一个在应用程序内浏览器中运行PouchDB的Cordova应用程序.每个用户都属于"团队".对于每个团队,云中都有一个沙发数据库,他们都在同步他们的本地邮袋.
我想创建一个提供一些简单过滤功能的设计文档,但我担心属于该团队的任何用户都能够创建设计文档的新版本,从而影响每个其他用户对文档的看法.
锁定设计文档的更新是否常见?这些设计文档是否通常在用户之间复制,或者仅在本地小袋中创建,并以某种方式阻止复制到共享云沙发?
我正在使用 Ionic 3、Angular 4、Pouchdb、Pouchdb-find Pouchdb 工作正常。我已经通过 npm 安装了 pouchdb 和 pouchdb-find
重现步骤
新产品经理
ionic start testapp
npm install pouchdb
npm install pouchdb-find
ionic serve -l
Run Code Online (Sandbox Code Playgroud)
这是我使用空白 ionic 3 模板的组件简介
import { Component } from '@angular/core';
import { NavController } from 'ionic-angular';
import { Http } from '@angular/http';
import 'rxjs/add/operator/map';
import PouchDB from 'pouchdb';
declare var require: any;
@Component({
selector: 'page-home',
templateUrl: 'home.html'
})
export class HomePage {
constructor(public navCtrl: NavController) {
PouchDB.plugin(require('pouchdb-find'));
var db = new PouchDB('pillsalarm3');
db.createIndex({
index: {fields: …Run Code Online (Sandbox Code Playgroud)