Могу ли я поместить свою строку в запрос представления 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", {}],

Другие вопросы по тегам