update_one () отсутствует 1 обязательный позиционный аргумент: 'update' - PullRequest
0 голосов
/ 08 марта 2020

Я буквально все пробовал под солнцем, какие-нибудь предложения, как я могу заставить это работать? Я пытался использовать ajax_data для обновления правильных значений, но это не сработало. Цель этого кода состоит в том, чтобы иметь возможность редактировать значения в строке, и он будет передавать изменения в базу данных mongodb

    @portfolio_app.route('/editJob', methods=['POST'])
def editJob():
    try:

        ajax_data = request.get_json()
        print(request.get_json())

        db = connectToDB()

        collection_remote_jobs = db.remote_jobs
        print(collection_remote_jobs)

        collection_remote_jobs.update_one(
    {"$set":
        {"position": 'position',
        "company": "company",
        "description": "description"} 
    })

        return jsonify('Success it worked')
    except Exception as e:
        print(e)
        print(traceback.format_exc())
        return jsonify('Failed!')

Javascript

$(".table").off('click').on('click', '.edit', function(){
    var currentCell = $(this).parent().find(".cellvalue");
    var cellValue = currentCell.text();
    console.log(cellValue);
    currentCell.attr('contenteditable', 'true');
    alert("You can now start editing");
});

    $(".submitedit").click(function(){
        var position_data = $(this).parent().find(".gposition").text();
        var company_data = $(this).parent().find(".gcompany").text();
        var description_data = $(this).parent().find(".gdescription").text();
        console.log(position_data);
        console.log(company_data);
        console.log(description_data);
        var edit_job_data = {'position':position_data, 'company':company_data, 'description':description_data};
        var baseURL = window.location.origin; 
        var Post_URL = baseURL + '/editJob';
        $.ajax({
            method: 'POST',
            url: Post_URL,
            data: JSON.stringify(edit_job_data),
            contentType: "application/json",
            dataType: 'json',
            success: function(msg) {
                console.log(msg)   
                console.log('SUCCESS REACHED API!');
                alert('Job Info Has Been Delete!');
            }
    });
    });

1 Ответ

0 голосов
/ 08 марта 2020

В вашем запросе update_one отсутствует аргумент filter.

См. документы . Вам необходимо указать оба слова: filter и update. Прямо сейчас вы предоставили только один, который update_one считает filter - поэтому он жалуется на отсутствие части update.

Вам также необходимо пропустить фильтр:

collection_remote_jobs.update_one(
    { <some filter BSON that selects the document you want to update> },
    {"$set":
        {"position": 'position',
        "company": "company",
        "description": "description"} 
    }
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...