Как передать аргумент в запрос поиска neDB? - PullRequest
0 голосов
/ 28 марта 2019

Я хочу построить действительно простой Find-Query, используя neDB в приложении Electron. В этом приложении пользователь может добавить новые расходы, которые состоят из имени, значения, интервала, типа и категории. Пользователь также может добавлять категории во время выполнения, которые сохраняются в файл с именем «category.db», а все остальное сохраняется в «finances.db»

Пример:

categories.db

{"name":"Salary","_id":"HkRc1Y7BIWrSi1jr"}
{"name":"Sports","_id":"MSAqT2zQ9Am55SrI"}
{"name":"Utilities","_id":"OAQbd3A9JLAwRYnx"}
{"name":"Rent","_id":"iGEjAMTimweFqb4b"}
{"name":"Other","_id":"wW3v3JtpXxNgxCMZ"}

finances.db :

{"name":"blubOne","value":"16","interval":"30","type":"Expense","category":"Sports","_id":"IpCwOenE1shUQioX"}
{"name":"bla","value":"420","interval":"30","type":"Income","category":"Salary","_id":"MhtmbJs7fOgzToUJ"}
{"name":"Dropbox","value":"9.99","interval":"30","type":"Expense","category":"Utilities","_id":"UzgCJjR7qXaxr3QJ"}
{"name":"mobile","value":"196","interval":"30","type":"Income","category":"Other","_id":"a9lJE22zLi0eiCBp"}
{"name":"electricity","value":"50","interval":"30","type":"Expense","category":"Utilities","_id":"z8dsjGDMg32s4MrO"}

Я уже могу выполнить этот запрос поиска, как показано здесь:

database.js

exports.filterByCategory = function(fnc){
    db.finances.find({category: "Sports"}, function(err, docs){
        fnc(docs)
    })
}

Я выполняю эту функцию следующим образом:

summary.js

database.filterByCategory(function(filteredCategory){
    if (filteredCategory!== 0){
        for (i = 0; i < filteredCategory.length; i++){
                 console.log("FILTER: " + filteredCategory[i].name)
            })
        }
    }

Но я изо всех сил пытаюсь передать аргумент поисковому запросу (что-то вроде этого):

database.js

exports.filterByCategory = function(fnc, arg){
    db.finances.find({category: )}, function(err, docs){
        fnc(docs)
    })
}

Я также не нашел ничего связанного с этой проблемой в документах neDB.

https://github.com/louischatriot/nedb/blob/master/README.md


QuickEdit:

Я так далеко, но я не знаю, как передать аргумент функции:

database.js

exports.filterByCategory = function(fnc, arg){
    var whatToFind = {category: arg}

    db.finances.find(whatToFind, function(err, docs){
        fnc(docs)
    })
}

summary.js

database.filterByCategory(function(filter, arg){
    if (filter !== 0){
    for (i = 0; i < filter.length; i++){
        console.log("FILTER: " + filter[i].name)
        }
    }
})

Узнал, как это сделать, действительно просто:

database.js

exports.filterByCategory = function(name, fnc){
    var arg = {
        "name": name
    }
    db.finances.find({category: arg.name}, function(err, docs){
        fnc(docs)
    })
}

summary.js

database.filterByCategory(arg, function(fnc){
    if (fnc !== 0){
        for (i = 0; i < fnc.length; i++){
            console.log("object: " + fnc[i].name)
        }
    }
})
...