标签: couchdb

couchdb 的连接池

我有一个 couchdb 数据库,并且正在并行查询它。现在,我想创建一个连接池,因为我发现了设计中的瓶颈 - 我使用的是 couchd 的单个实例,因此并行化因此失败。

我在网上搜索了连接池实现,但我无法找到适合 couchdb 的正确 java 连接池实现 - 大多数框架都支持关系数据库。如果有人能帮助我,我将不胜感激。

java couchdb connection-pooling pool object-pooling

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

使用CouchDB附件提供文件?

我正在使用Express.我无法弄清楚如何将图像文件发送到客户端,以便将其显示到HTML标记<img src='/preview/?doc=xxxxxx&image=img1.jpg'>.我正在使用Cradle getAttachment函数与Couchdb进行通信https://github.com/flatiron/cradle

db.getAttachment(id, filename, function (err, reply) {
    set('Content-Type', 'image/png');
    res.end(reply);
});
Run Code Online (Sandbox Code Playgroud)

我不知道究竟reply是什么以及如何在没有缓冲区的情况下将该图像传输到客户端

couchdb node.js express cradle

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

使用多个键查询CouchDB以获取多个属性

我正在使用沙发数据库来存储订阅文档.在执行查询时,我希望能够查询多个属性并使用"IN"子句.例如,我有一个subscriptionStatus属性可以有多个值(Active,Failed,In_Progress等),订阅也有customerID.

如何为customerID ="JD212S"AND subscriptionStatus IN ["Active","In_Progress"]的所有订阅创建查询

基本上向我展示特定客户的活跃和正在进行的订阅.我查看了视图组合,多个键等,但我无法做到这一点(或者我误解了文档).

我已经看了很多Stack Overflow Q/A和CouchDB文档,但似乎一次只找到一个属性的选项.

rest couchdb views key

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

带有 Android 应用程序的 CouchDB

我们有一个使用 couchDb 作为数据库在 GWT 中开发的 Web 应用程序,现在我们想为同一个 Web 应用程序开发 android 应用程序。因此,我们也希望为 android 应用程序使用相同的 coucDB 数据库,以便为两个应用程序(web 和 android)保留一个数据库。

那么如何使用 couchDB 配置 android 应用程序。

谢谢你

java gwt android couchdb

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

CouchDb 按时间戳降序对用户发布的帖子进行排序

我的帖子包含用户名(帖子作者)和时间戳(上传时间)等字段。我正在努力创建一个视图,当查询时,它按时间戳的降序抓取特定用户的帖子。

map: function(doc) {
    if (doc.type == 'post'){
        emit(doc.username, [doc._id, doc.timestamp]);
    };
},
Run Code Online (Sandbox Code Playgroud)

我可以查询由特定用户创作的文档,但如何仅在时间戳字段上应用降序 = true?

couchdb

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

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
查看次数

CouchDB 2 中的序列号错误还是有其他方法来比较序列号?

I\xe2\x80\x99m 深入研究 CouchDB 2,并且 I\xe2\x80\x99m 发现一些意外的序列号排序。在一种情况下,我发现 _changes feed 中的早期更改具有序列号

\n\n
99-g1AAAAI-eJyd0EsOgjAQBuAGiI-dN9C9LmrBwqzkJtrSNkgQV6z1JnoTvYneBEvbhA0aMU1mkj6-_NMSITTJfYFm2anOcsFT10mpTzyG-LxpmiL32eqoN8aEAcWE9dz_jPCFrnzrHGQchiFM4kSgaV0JqQ6VFF-AtAV2DggMgCEGxrNhQfatc3bOyDiKUalg2EBVoCu66KapazcUh41e69-GssjNIvcWWRokk2oNofwj0MNazy4QFURhGQ0J9LKI-SHPIBHEgiak51nxBhxnrRk\n
Run Code Online (Sandbox Code Playgroud)\n\n

对于同一数据库,我的 _changes feed 中的最后一个序列号是

\n\n
228-g1AAAAJFeJyd0EkOgjAUBuAGTJCdN9AjlIKFruQm2jFAEFes9SZ6E72J3gQ7JW7QCGnyXtLhy-vfAgCWVSjAip96XglW-o5afRJQwNbDMDRVSOuj3ogQJRgiOnL_O8I2urKdd4B1KCRpkRcCxH0npKo7KX4ApQH2HogsAElOKOPTBjkY5-yd2DqKYqnItA91C13BRTdNXY0VWouRrV7JDOvmrLuxlLW4VAlJ5Qzr4aznJ2wskIIy-y9sh7wcYoMKLJKRXOACjTxr3uHcsBE\n
Run Code Online (Sandbox Code Playgroud)\n\n

在浏览器控制台中,以下内容是错误的

\n\n
'228-g1AAAAJFeJyd0EkOgjAUBuAGTJCdN9AjlIKFruQm2jFAEFes9SZ6E72J3gQ7JW7QCGnyXtLhy-vfAgCWVSjAip96XglW-o5afRJQwNbDMDRVSOuj3ogQJRgiOnL_O8I2urKdd4B1KCRpkRcCxH0npKo7KX4ApQH2HogsAElOKOPTBjkY5-yd2DqKYqnItA91C13BRTdNXY0VWouRrV7JDOvmrLuxlLW4VAlJ5Qzr4aznJ2wskIIy-y9sh7wcYoMKLJKRXOACjTxr3uHcsBE' > '99-g1AAAAI-eJyd0EsOgjAQBuAGiI-dN9C9LmrBwqzkJtrSNkgQV6z1JnoTvYneBEvbhA0aMU1mkj6-_NMSITTJfYFm2anOcsFT10mpTzyG-LxpmiL32eqoN8aEAcWE9dz_jPCFrnzrHGQchiFM4kSgaV0JqQ6VFF-AtAV2DggMgCEGxrNhQfatc3bOyDiKUalg2EBVoCu66KapazcUh41e69-GssjNIvcWWRokk2oNofwj0MNazy4QFURhGQ0J9LKI-SHPIBHEgiak51nxBhxnrRk'\n
Run Code Online (Sandbox Code Playgroud)\n\n

这是一个错误还是我需要使用其他方法来比较序列号?

\n\n

在查看我的 _changes feed 中的其他序列号时,看起来它们通常按照我的预期进行排序,但在这种情况下,当第一个数字(例如 99)从 2 位数字跳到 3 位数字时,排序会中断。如果将其归结为一个简单的字符串比较示例,您可以看到 '228' > '99' => false

\n

couchdb couchdb-2.0

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

对每个用户的 Cloudant 一个数据库进行身份验证

我提前道歉 - 这个问题需要一些背景知识,这可能是冗长的:

我正在尝试构建一个可与 PouchDb 脱机工作的应用程序。PouchDb 将与 Cloudant 同步。

使用的技术:Hapi、SQL、Vue、Cloudant、PouchDb

我已经构建了一个小的 hapi.js 服务来注册/验证用户。当“帐户所有者”注册时 - 他们将作为新用户添加到 SQL 数据库中。

使用 Cloudants API,我提供了一个新数据库(使用随机名称),并在数据库上设置了安全性,以便新用户可以访问。

我将安全性(数据库名称、用户名和密码)作为元数据保存回 SQL 数据库中的用户。

与此处非常相似的方法:https : //www.bennadel.com/blog/3208-provisioning-cloudant-couchdb-databases-from-auth0-for-a-database-per-user-architecture-in-angular-2 -4-1.htm(确实,我基于以上内容)。

当“帐户所有者”登录时,查询 SQL 数据库 - 检索元数据并将其发送到客户端 vue 应用程序。然后使用 Cloudant 数据库名称、用户名和密码填充 PouchDB 远程字符串。

例如:

const remoteDB = new PouchDB(`https://${name}:${pass}@0000-0000-bluemix.cloudant.com/${DBname}`);
Run Code Online (Sandbox Code Playgroud)

这一切都有效:PouchDB 可以与 Cloudant 对话 - 并且数据可以毫无问题地进出。

“帐户所有者”能够授予其他人(“员工”)对其 cloudantDB 的读/写访问权限。当他们添加新的职员时,职员会被添加到 SQL 数据库中。使用 cloudants API,我为该用户创建了新的安全凭证,以便他们可以访问 DB-(我不创建新的 DB)并将它们保存到 SQL 数据库中的 Staff Member 作为元数据...

新员工会收到一封电子邮件 - 他们在 SQL db 上设置了他们的用户名和密码,然后可以登录。Cloudant 元数据被拾取......等等...... PouchDB / Couchdb 相互交谈 - 这也作品。

最初我有点担心将这个元/凭据发送给客户端 …

couchdb cloudant hapijs vue.js vuejs2

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

在CouchDB中查看问题

我已尽可能地遵循http://books.couchdb.org/relax/browsing-map-views中的信息,但我无法为我的文档生成视图.

我的数据库名称是"twitter",我的设计文档如下所示:

{
   "_id": "_design/testdocview",
   "_rev": "2-3250434125",
   "views": {
       "getRev": {
           "map": "function(doc) { if(doc._id == 'testdoc'){   emit('_rev', doc._rev); } }"
       }
   }
}
Run Code Online (Sandbox Code Playgroud)

它应该可以在http:// myurl/twitter/_view/testdocview/getRev访问.但是,我在尝试查看时遇到此错误:

{"error":"not_found","reason":"missing"}
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

couchdb view

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