Как обновить и опубликовать в одной операции в mongodb - PullRequest
0 голосов
/ 02 марта 2020
    var postStop = async (machine,stop_name,timestamp)=>{
        var stop = new Stop({
            machine_name:machine,
            stop_name:stop_name,
            start_time:timestamp,
            end_time:null
        });
        stop.save();
}
    var updateStop = async (machine,stop_name,start_time,end_time)=>{ 
    var stop = await Stop.findOne({machine_name:machine,stop_name:stop_name,start_time:start_time});
    if(!stop){
        console.log(machine,stop_name,start_time,end_time)
    }
    stop.end_time = end_time;
    stop.save();
}

Мне нужно обновить и опубликовать в одной операции с некоторым условием.
Я объединил эти два в один, как это сделать.

Ответы [ 2 ]

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

Существует возможность вставить документ (если он отсутствует) и обновить (если он есть) в одном запросе.

Синтаксис: db.collection.update (запрос, обновление, {upsert: true}) *

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

Если вы хотите обновить или создать в том же действии, вы можете использовать опцию upsert

var stop = await Stop.update(
    {machine_name:machine,stop_name:stop_name,start_time:start_time},
    {end_time:end_time},
    {upsert: true});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...