I have documents one is dependent to other. first:
{
\"doctype\": \"closed_auctions\",
\"seller\": {
\"person\": \"person11304\"
},
\"buyer\":
An other solution consist to merge datas in a custom reduce function.
// view
function (doc, meta) {
if (doc.doctype === "people") {
emit(doc.id, doc);
}
if (doc.doctype === "closed_auctions") {
emit(doc.buyer.person, doc);
}
}
// custom reduce
function (keys, values, rereduce) {
var peoples = values.filter(function (doc) {
return doc.doctype === "people";
});
for (var key in peoples) {
var people = peoples[key];
people.closed_auctions = (function (peopleId) {
return values.filter(function (doc) {
return doc.doctype === "closed_auctions" && doc.buyer.person === peopleId;
});
})(people.id);
}
return peoples;
}
And then you can query one user with "key" or multiple users with "keys".
After I don't know what the performances issues are with this method.
Well, first off, let me point out that the very first sentence of the documentation section that you referenced says (I added the emphasis):
Joins between data, even when the documents being examined are contained within the same bucket, are not possible directly within the view system.
So, the quick answer to your question is that you have lots of options. Here are a few of them:
The last approach was used in the example you linked to in your question. For performance, it will be necessary to tailor the approach to your usage scenario.