匹配 couchdb 设计中的任何键

match any key from couchdb design

我是 couchdb 的新手,我的设计有两个键。我正在使用节点查看列表。无论如何我只能从节点传递一个密钥,如果它与 couchdb 的两个密钥中的任何一个匹配并获取结果。

我在 couchdb 中的设计:

function(doc) {
if(doc.doc_type==="messages")
  emit([doc.from, doc.to], doc);
}

使用节点传递密钥

db.view('message','fetch_msg',{key:"user1"}, function(err, body) {      
    if(err)console.log(JSON.stringify(err))
        console.log(body.rows.length)
    console.log(JSON.stringify(body));
})

喜欢'user1'是关键之一。 message/fetch_msg是我的设计

如有任何帮助,我们将不胜感激。

我想你想要 this 这样的东西。 您可以在密钥中将另一个参数指定为 {}。这样key就变成了["user1", {}]或者[{}, "user1"]。您可以根据您的情况使用couchdb 的开始键、结束键概念。

您可以为每个文档发出多个键 - 每个键都会 return 同一个文档。

function (doc) {
  if (doc.doc_type !== 'messages')
    return

  emit(doc.from, null)
  emit(doc.to, null)
}

如果您想获取一行的整个文档,出于性能原因,建议不要将其作为行的值发出。当您请求视图时,请改用 ?include_docs=true