Я использую mongodb
для вставки и обновления некоторых документов в некоторой коллекции. Когда я обновляю документ, я хочу получить только измененные поля. Я могу получить полностью новый документ (включая измененные поля), используя опцию returnOriginal
для обновлений, но она дает мне все свойства.
Из документов :
returnOriginal | необязательно | При значении false возвращает обновленный документ
а не оригинал. По умолчанию установлено значение
Мой код:
let result = await db.myCollection.findOneAndUpdate(
{_id: ObjectId('5a2451399054bf000453c332')},
data,
{returnOriginal: true}
);
, где data
может быть либо одним полем, либо несколькими полями, например:
let data = {field1: 'newValue1'};
или
let data = {field1: 'newValue1', field2: 'newValue2'};
Я бы хотел получить только эти поля, но в результате обновления я получу весь объект, включая свойство _id и все остальные, даже если они не были изменены.
Я ищу простой способ (функция или свойство mongodb было бы идеальным) для получения только измененных полей , если есть такой способ, вместо сравнения обоих объектов (до и после).
Использование драйвера узла mongodb :
"mongodb": "^3.1.6"