У меня есть couchDB база данных с 2 типами документов. У документа A есть x пункты, у документа b есть-y пункты.
У каждого продукта есть ID, единый документ A, и многие Документируют Б, связался с ним. (думайте о нем как инвентарь. Документ A имеет сколько пунктов в начале. Документ B представляет продажу/поломку и т.д.).
Я должен произвести представление, которое возвращает id всех продуктов с положительной суммой пунктов.
Я написал, что карта уменьшает как так:
КАРТА:
function(doc) {
if (doc.Type === "Delivery") {
emit(doc.ProductID, doc.Items );
}
if (doc.Type === "Sale") {
emit(doc.ProductID, -(doc.Items));
}
}
УМЕНЬШИТЕ:
function(keys, values) {
var total = sum(values);
if (total > 0) {
return total
}
}
Когда подвергнуто сомнению, это возвращает большое Нулевые значения для продуктов, которые мы не имеем в запасе. Это возвращает положительные числа для тех, которых мы имеем.
Если я подвергаю сомнению это представление, я добираюсь , огромные список {productID: ПУСТОЙ УКАЗАТЕЛЬ} пары.
Я использовал Список, который просто не возвращает вещи с ПУСТЫМ УКАЗАТЕЛЕМ стоимости, но этому, кажется, нужно восстановление каждый раз, когда представление обновляется. Я добавляю одну стоимость, и она проходит строительство целого списка. Это начинает занимать довольно долгое время, и кажется, что это продолжит занимать больше времени, когда база данных растет в размере.
Есть ли способ просто возвратить id представления, у которых нет Нулевых значений? (как NOT NULL sql).
Или, кто-либо знает наиболее успешную практику для этой ситуации?