Представление Couchdb / Cloudant для свойства документа с массивом - PullRequest
0 голосов
/ 12 мая 2018

У меня есть три документа в CouchDB / Cloudant следующим образом:

all_docs :[{
    _id: "content1"
    files: ["fileA", "fileB", "fileC"]
}, {
    _id: "content2"
    files: ["fileD", "fileE", "fileC"]
}, {
    _id: "content3"
    files: ["fileF", "fileG", "fileH"]
}

Мне нужно получить content1 и content2 как результат для FileC, где я могу передать FileC в качестве ключа.

Есть ли способ написать представление, которое возвращает идентификаторы документов (content1 и content2), где файл является FileC?

1 Ответ

0 голосов
/ 12 мая 2018

Для этого просто требуется стандартный прямой просмотр.

Как указано в документации :

Обратите внимание, что emit() может вызываться много раз дляодин документ, поэтому один и тот же документ может быть доступен несколькими разными ключами.

Так что вам просто нужно вызвать emit() для каждого файла в документе.Как то так:

function (doc) {
  for (i = 0; i < doc.files.length; i++) {
    emit(doc.files[0])
  }
}
...