2017-02-13 2 views
0

Я пытаюсь обновить документы, используя $ set в mongoose, но хочу, чтобы он использовал набор, если документ существует. Else, я бы хотел, чтобы он создал новый документ. Проблема в том, что мне нужно, чтобы весь документ был добавлен, а не только поля, указанные в наборе $. Возможно ли это в одном запросе с мангуста?

+0

Пример кода: bulk.find ({_: ID}). Обновление ({$ набор: {название: 'Foo бар'}}) .upsert (newDoc) ??? – stu6188

ответ

0

Вы можете сделать это с помощью findOneAndUpdate с upsert:true вариант:

MyModel.findOneAndUpdate(query, {$set: {.....}}, { upsert:true }, function(err, doc){ 
    if (err){ 
     return res.send(500, { error: err }) 
    }; 
    return res.send("succesfully saved"); 
}); 
+0

Не думайте, что это помогает, поскольку мне нужно вставить весь документ, если документ не существует. В этом случае он будет использовать значения, введенные в $ set – stu6188

+0

Но можно передать '$ set' полный объект. – giankotarola

Смежные вопросы