我看了好几个主题,但是我无法让它发挥作用:
我的模型看起来像这样:
let UserSchema = new Schema({
[...]
feed: [
{
seen: Boolean,
isOwnEntity: Boolean,
activity: {
type: mongoose.Schema.Types.ObjectId,
ref: 'Activity'
}
}, {_id: false}],
[...]
});
我现在想要使用更新删除此Feed中的条目,但更新不起作用:
User.update({'feed': {'$elemMatch': {'activity': this._id}}}, {'$pull': {'feed': {'activity': this._id}}});
我尝试使用和不使用$ elementMatch,根据:https://docs.mongodb.com/manual/reference/operator/update/pull/#up._S_pull
但是find()有效:
User.find({'feed': {'$elemMatch': {'activity': this._id}}}).exec().then((users) => {
users.forEach((user) => {
user.feed = user.feed.filter((entry) => {
return !entry.activity.equals(this._id);
});
user.save();
});
});