После перебирания Гоголевских ответов и Ютубовских видео, так и не нашел решения моего вопроса....
Нужно реализовать следующую функцию, используя node.js mongodb native driver:
var users =[{name:"one",warns:1}]; //Можно сказать, что это db.collection("users").find().toArray(callback);
function plus(name){ //Та самая функция
for(i in users){ //Перебираем йузеров, да бы найти нужного (Вроде, можно использовать db.collection("users").findOne({name:name},callback)")
if(users[i].name === name) { //Если находим
users[i].warns++; //Прибавляем 1 к параметру warns
return; //И сваливаем
}
}//Иначе, если таковой не нашелся - создаём его
users.push({name:name, warns:1});
}
Можно с нативным драйвером использовать промисы, а следовательно и async/await
. Если я правильно понял то можно написать так
function add(name){
(async () => {
try {
let collection = db.collection('users');
let user = await collection.findOne({ name: name });
if (user) {
user.warns++;
await collection.updateOne({ name: name }, user);
} else {
await collection.insertOne({name: name, warns:1});
}
} catch (error) {
console.error(error)
}
});
}
Через колбеки
function add(name){
db.collection('users').findOne({ name: name }, (err, user) => {
if (err) throw err;
if (user) {
user.warns++;
db.collection('users').updateOne({ name: name }, user, (err, result) => {
if (err) throw err;
console.log(result);
});
} else {
db.collection('users').insertOne({ name: name, warns: 1 }, (err, result) => {
if (err) throw err;
console.log(result);
});
}
});
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Как имитировать клик на span UploadНа самом деле нажимаю на кнопку submit, но словно на span
Можно ли указывать необязательные параметры RewriteRule при написании ЧПУДопустим есть скрипт с запросом - cats