我的mongoose
模型类似于:
var UsersSchema = new Schema({
my_username: {type: String},
blocked_users: [{
my_username: {type: String, required: true},
display_name: {type: String, required: true}
}],
created_at: {type: Date, default: Date.now},
updated_at: {type: Date, default: Date.now}
});
现在,我创建了端点,用于向此阵列添加新的blocked_users。它看起来如下:
usersRoutes.post('/:username/blockedUsers/add', function(req, res){
var username = req.params.username;
var blockedUser = req.body.blockedUser;
if (blockedUser != undefined) {
User.findByIdAndUpdate(
username,
{
$push: {"blocked_users": blockedUser},
},
{safe: true, upsert: true, new: true},
function(err, user) {
if(err)
console.log(err);
res.json(user);
}
);
}
});
这很好用。但是如何从该列表中删除特定用户?
有没有办法只通过my_username
而不是整个blockedUser
对象将其从列表中删除?
答案 0 :(得分:0)
试试这个:
User.findByIdAndUpdate(_id, {
$pop: {"blocked_users": blockedUser._id}
}, function (err, user) {
// handle callback
});
blockedUser
是您要从列表中删除的用户