2016-12-25 4 views
0

Мне нужно отключить поле mongo, которое является ObjectId, и ссылается на другую схему, если этот идентификатор является идентификатором текущего пользователя, и это поле установлено. В другом случае, если это поле не установлено, должен быть установлен текущий идентификатор пользователя. Если поле установлено, и ObjectID не соответствует текущему идентификатору пользователя, он должен вернуть существующий документ, но без изменений, внесенных в поле ObjectID.Документ обновления Mongoose с условиями

Прямо сейчас я нахожу вход по идентификатору, а затем проверяю случаи в моем JS-коде. Затем я выполняю другой запрос, чтобы обновить документ. Но я думаю, что это может быть сделано монго в одном запросе.

Я использую мангуст в моих nodeJS

ответ

1

Mongoose findOneAndUpdate это функция, которую вы ищете for.It имеет следующий общий синтаксис. query.findOneAndUpdate(conditions, update, options, callback) Редактировать: добавлен пример запроса.

var query = {"_id": id}; 
var update = {name: {first: 'john', last: 'smith'}}; 
var options = {new: true}; 
People.findOneAndUpdate(query, update, options, function(err, person) { 
    if (err) { 
    console.log('got an error'); 
    } 

    // at this point person is null. 
}); 
+0

Не могли бы предоставить мне более подробный вид параметров условий? –

+0

Обновлен мой ответ в прецеденте – Gaurav