1

Как переписать свойство массива документа на основе заданного массива в качестве источника?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); 

ответ

1

Пробовали ли вы $ оператора множества?

Post.findOneAndUpdate({ _id: id }, { $set: {tags: ["id1...", "id2..."]}, {}, cb);

+0

Спасибо, оператор $ set сделал трюк. Не удалось найти это в последних документах mongoose. – scripton

+0

$ set оператор хороший –

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