node.js - 如何在 CouchDB 中使用给定参数进行查询?

标签 node.js couchdb

我有一个聊天 CouchDB,它以下列格式存储记录。

    type:"chat",
    email:"p@g.com",
    friendEmail:"m@g.com",
    time: [year,month,date,hour,min,sec];
    msg:"I'm very good",

我创建了一个这样的 View

function(doc) {
    if(doc.type==="chat" && doc.email && doc.friendEmail){
        emit([doc.time,doc.email],doc); 
    }
}

我的问题是,如果我只想通过电子邮件“p@g.com”获取聊天记录,我该如何获取?

旁注:我正在使用 Cradle & NowJS。

最佳答案

您创建的 View 允许您按时间检索(具有相同时间的行将按电子邮件排序)。

创建一个允许通过电子邮件查找的 View ;

emit(doc.email, doc);

然后查询

?key=p@g.com

注意:在这两种情况下都没有必要将整个文档复制到 View 中。您可以改为执行 emit(key, null) 并将 &include_docs=true 添加到您的查询中。

关于node.js - 如何在 CouchDB 中使用给定参数进行查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8863039/

相关文章:

mysql - 在将此插入写入查询时需要一些帮助,什么是有效的方法?

node.js - 使用node-couchdb-api在couchdb中创建临时 View

meteor - 如何使用 CouchDB 作为 MeteorJS 应用程序的后端数据库,而不是默认的 MongoDB?

authentication - 调用 CouchDB 的 _session 总是返回 200

node.js - gcloud无法部署nodejs应用程序

javascript - 为什么每次请求都会发送 cookie,但在浏览器控制台或 document.cookie 中看不到?

javascript - 将异步等待与 babel 和 ES6 promise 一起使用时无法解决 promise

node.js - 在 Express js 中无需密码即可检查 Active Directory

sorting - CouchDB:从 View 中的 View 获取结果

javascript - 将 session cookie传递给另一个ip?