Окружающая среда
node -v
v10.0.0
// native driver "mongodb": "^3.0.8",
Желаемое поведение
Я хочу обновить документ и вернуть исходный документ.
Фактическое поведение
Обновленный документ возвращается вместо исходного документа.
Что я пробовал
Первоначально я смотрел на findAndModify
:
http://mongodb.github.io/node-mongodb-native/3.1/api/Collection.html#findAndModify
однако документы там говорят, что это устарело и до use findOneAndUpdate, findOneAndReplace or findOneAndDelete instead
.
Итак, я попробовал:
collection.findOneAndUpdate(filter, update, function(err, result) {
if (err) {
res.send(err);
} else {
// find object in array of objects ('statements') and return the 'text' property value
var old_text = result.value.statements.find(x => x.id === "my_great_id").text;
console.log(old_text);
}
});
http://mongodb.github.io/node-mongodb-native/3.1/api/Collection.html#findOneAndUpdate
В документах сказано, что опция returnOriginal
используется по умолчанию, однако она регистрирует обновленное значение, а не исходное значение.
Edit:
Проблема была в другом месте кода - приведенный выше код работает, как и ожидалось.