Вот как я это делаю сейчас, есть ли лучший (более простой или простой) способ?Извлечение документов из облачного db, если они содержат значение в свойстве массива
Документы в Cloudant
дб:
1 ..
{
"_id": "someId",
"_rev": "someRev",
"title": "someTitle",
"parentDirectories": [
'/', '/base_dir'
]
}
2 ..
{
"_id": "someId2",
"_rev": "someRev",
"title": "someTitle2",
"parentDirectories": [
'/', '/base_dir'
]
}
В настоящее время у меня это определено в view
Cloudant
и установить параметр include_docs
истина так возвращается весь объект (это необходимо).
function (doc) {
if (doc.parentDirectories) {
for (i = 0; i < doc.parentDirectories.length; i++) {
emit(doc.parentDirectories[i], {_id: doc._id});
}
}
}
И назовет view
используя ..
/<database>/_design/<design-doc>/_view/my_view?include_docs=true
Используя keys
набор параметров: ['/']
, поэтому вид возвращает 2 документа выше.
Вы также можете испустить весь документ с помощью 'emit (doc.parentDirectories [i], doc)', если вам нужен весь документ, - намного быстрее, чем чтение документа с помощью 'include_docs = true', но при этом стоит стоимость размер индекса на диске. –