Могу ли я поместить свою строку в запрос представления Couchbase?
Предположим, у меня есть вид:
function (doc, meta) {
if (doc.owner == "patrick_bateman") {
emit(doc.title, doc.date);
}
}
Есть ли способ, которым я могу поставить свою собственную переменную из веб-приложения вместо "patrick_bateman"? Мне нужно динамически проверить, принадлежит ли запись конкретному пользователю. Если это невозможно, как я могу проверить такие вещи, как право собственности на записи в Couchbase?
1 ответ
Как я уже писал в вашем втором вопросе, вы можете использовать "составные ключи" для этого. Вот краткий пример функции карты:
map: function(doc,meta) {
if (meta.type === "json"){
emit([doc.owner, doc.date], null);
}
}
Просмотр с этой функцией карты может принимать переменную "из веб-приложения" "patrick_bateman", и результаты будут отсортированы по дате. Также вы можете указать диапазон дат, если хотите. Поэтому запросите переменные для этого представления (т. Е. Если вы хотите, чтобы все записи, принадлежащие patrick_bateman, были созданы со времени 0
ко времени 100
): startKey=["patrick_bateman", 0]
endKey=["patrick_bateman", 100]
, Или, если вы хотите, чтобы записи со времени 100 до сих пор вы можете использовать startKey=["patrick_bateman", 100]
endKey=["patrick_bateman", {}]
,