Как сделать запрос к couchdb с помощью поиска по ключу и строке - PullRequest
0 голосов
/ 13 декабря 2018

Я новичок в CouchDB, и у меня есть такие документы:

{
    "credit_type" : "ADJ",
    "particular" : "Adjusted hours on 2018-01-01"
}

Затем у меня есть представление с помощью этой функции карты

function(doc) {
   if(doc.credit_type == "ADJ") { emit(doc.particular, doc); }  
}

URL-адрес моего просмотра выглядит следующим образом:

http://mywebsite.com:5984/_utils/database.html?client_docs/_design/adj/_view/adj

Я хочу запрашивать документы, которые соответствуют моему поисковому ключу.Поле поиска - это поле particular.

Ключ поиска - это дата типа 2018-01-01 Когда я добавляю URL-адрес поиска, например

http://black-widow.remotestaff.com:5984/client_docs/_design/adj/_view/adj?key=20180-01-01

Я должен иметь возможность извлекать записи, которыесодержит 2018-01-01 строку в поле particular

У меня еще нет функции уменьшения

1 Ответ

0 голосов
/ 21 декабря 2018

Чтобы выполнить поиск по какому-либо ключу, вы должны выдать этот ключ.

Чтобы вы могли это сделать, я бы предложил перенести дату из поля particular в собственное поле.поле, таким образом вам не нужно будет выполнять какой-либо анализ строки в поле particular, чтобы получить вашу дату.

Если вы этого не сделаете или не сможете, вам придется проанализировать определенное поле дляДата.Это может быть достигнуто с помощью этого вопроса и ответа. *

После того, как вы получите дату, вам нужно будет отправить ее, поэтому позвольте мне привести вам пример.

function(doc){
    String date = doc.particular.parse.date.here();

    emit([date, doc.credit_type], doc.particular);
}

Здесь мы анализируем дату из поля doc.particular и выводим ее вместе с типом кредита.Теперь вы можете сохранить ваше заявление if таким, как оно есть, но если вы сделаете это таким образом, вы сможете искать ЛЮБОЙ credit_type против только ADJ.

Теперь ваши ключи должны быть 2018-01-01 иADJ.

* Вам необходимо убедиться, что версия JS для CouchDB поддерживает эти функции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...