{
name: {
type: String,
required: true
},
items: [
{
item: {
type: Schema.Types.ObjectId,
ref: 'item'
},
order: {
type: Number,
default: 0
}
}
]
}
);
Когда обновляется коллекция 'item', например, какие-то доки в ней удаляются, соответственно я хочу, чтобы эти же доки удалялись и в items в модели game.
Делаю так - удаляет вообще все из items в модели game:
await Game.update({ _id: id }, { $pull: { items: { item: { $nin: items } } } });
Вот так работает:
const game = new Schema(
{
name: {
type: String,
required: true
},
items: [{
type: Schema.Types.ObjectId,
ref: 'item'
}]
}
);
await Game.update({ _id: id }, { $pull: { items: { $nin: items } } });
Но мне нужен именно первый вариант модели для реализации ручной сортировки items внутри game.
Ну и сам вопрос - почему в первом варианте не работает корректно $pull, что я делаю неправильно? Заранее спасибо.
Если я правильно понял https://docs.mongodb.com/manual/reference/operator/update/pullAll/
Обсуждают сегодня