[英]CouchDB “Join” two documents
我有兩個文件看起來有點像這樣:
Doc
{
_id: AAA,
creator_id: ...,
data: ...
}
DataKey
{
_id: ...,
credits_left: 500,
times_used: 0,
data_id: AAA
}
我想要做的是創建一個視圖,允許我傳遞DataKey id(key = DataKey _id)並獲取DataKey和Doc的信息。
我的嘗試:
我首先嘗試在Doc中嵌入DataKey並使用map函數,如下所示:
function (doc)
{
if (doc.type == "Doc")
{
var ids = [];
for (var i in doc.keys)
ids.push(doc.keys[i]._id);
emit(ids, doc);
}
}
但我遇到了兩個問題:
有誰有想法我怎么能做到這一點? 如果有什么不清楚,請告訴我。
- - -編輯 - - -
我忘了提到在我的應用程序中我不知道Doc ID是什么,所以我需要能夠搜索DataKey的ID。
我想你想要的是什么
function (doc)
{
if (doc.type == "Doc")
{
emit([doc._id, 0], doc);
}
if(doc.type == "DataKey")
{
emit([doc.data_id, 1], doc);
}
}
現在,使用key=["AAA"]
查詢視圖,您將看到所有文檔的列表。 第一個將是真正的“Doc”文檔。 所有其余的將是“DataKey”文檔,它們引用了第一個doc。
這是一種常見的技術,稱為CouchDB視圖排序規則 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.