Как создать поле документа $ inc MongoDB с помощью AJAX?

#javascript #jquery #ajax #mongodb

#javascript #jquery #ajax #mongodb

Вопрос:

Я пытаюсь добавить поле MongoDB в $ inc при каждом нажатии кнопки «Нравится». Поскольку нет данных, которые мне нужно передать на сервер (но, может быть, есть?), Я не уверен, какое значение указать для data ключа в моем .ajax вызове.

Приведенный ниже маршрут публикации показывает, что я пытаюсь сделать при нажатии кнопки «Мне нравится»:

 app.post('/like', function(req,res){
    var query = req.session.mostRecentQuiz;
    db.collection('mycollection').update(
        query, { $inc: {"likes": 1 } }, function (err, result) {
        if (err) throw err;
        console.log(result);
    } );
});
  

На странице JS:

 $("#like").click(function(){
    $.ajax({
        url: "/like",
        method: "POST",
        data: , //what would go here?
                //I just need to $inc each time "Like is clicked.
        success: function(data){
            if(data.success){
                console.log("success!")
            }else{
                console.log("failure.")
            }
        }
    })
});
  

Заранее спасибо за любые ответы.

Ответ №1:

true для похожих, false для непохожих

попробуйте что-то вроде этого data: {isLiked: true}

Комментарии:

1. Спасибо! true работает, но false выдает ошибку «селектор должен быть допустимым объектом Javascript». Итак, я создал новый маршрут «/ в отличие», который совпадает с маршрутом «/ like», за исключением того, что он уменьшается на -1, а вызов AJAX для $("#unlike") имеет data: true

2. Я также success: полностью удалил ключ из вызовов AJAX, поэтому не уверен, что это привело false к ошибке. Еще раз спасибо!

3.вы можете использовать параметр, основанный на isLiked true или false , увеличивать или уменьшать лайки