Как переписать свойство массива документа на основе заданного массива в качестве источника?Mongoose: свойство перезаписи массива при обновлении
Схема:
var postSchema = new mongoose.Schema({
title: { type: String, required: true, index: { unique: true } },
content: { type: String },
tags: [{ type: mongoose.Schema.Types.ObjectId, ref: 'Tag' }]
});
теперь у меня есть массив с идентификаторами объектов тегов, и я хотел бы, чтобы перезаписать свойства тегов. Проблема, с которой я сталкиваюсь сейчас, заключается в том, что она добавляет новые теги, но не удаляет теги, которые не находятся в исходном массиве.
Я в настоящее время выполняю обновление с помощью findOneAndUpdate следующим образом:
// Pseudo code example
Post.findOneAndUpdate({ _id: id }, { tags: ["id1...", "id2..."], {}, cb);
Спасибо, оператор $ set сделал трюк. Не удалось найти это в последних документах mongoose. – scripton
$ set оператор хороший –