Я хочу построить действительно простой 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)
}
}
})