рдирдорд╕реНрддреЗ,
рдореИрдВ ObjectId рдХреА рд╕рд░рдгреА рд╕реЗ ObjectId рдХреЛ рдХреИрд╕реЗ рд╣рдЯрд╛ рд╕рдХрддрд╛ рд╣реВрдВ?
рдореЗрд░рд╛ рдореЙрдбрд▓ :
var User = new Schema({
title : { type : String, index: true },
name : String,
friends : [ObjectId],
join_at : {type:Date, default:Date.now },
save_at : {type:Date, default:Date.now }
});
рдСрдмреНрдЬреЗрдХреНрдЯ рдЖрдИрдбреА рдХреЛ рд╣рдЯрд╛рдиреЗ рдХрд╛ рдХрд╛рд░реНрдп: uid
User.findOne({'_id' : self.id}, function(err, me){
for(var i=0; i<=me.friends.length; i++){
if (String(me.friends[i])==String(uid)){
me.friends.splice(i, 1);
break;
}
}
me.save(function(err,us){
next(err,'kljlmjk'+JSON.stringify(me));
});
});
рдЖрдкрдХреЗ рдЬрд╡рд╛рдм рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред
рдмреНрдпрд╛рд╣ рдХрд╛ рдкреНрд░рдпреЛрдЧ рди рдХрд░реЗрдВред
me.friends.remove(uid);
me.save(callback);
рд╡рд╣ рд╕рдорд╛рд░реЛрд╣ рд╕реБрдВрджрд░ рд╣реИ!
рдХреНрдпрд╛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХрд╛рдзрд┐рдХ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдореЗрдВ рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рд╣реИ?
User.update({
friends: uid
}, {
'$pull': {
friends: uid
}
})
рдЗрд╕реА рдкреНрд░рд╢реНрди рдХрд╛ рдЙрддреНрддрд░ рдЦреЛрдЬ рд░рд╣реЗ рд╣реИрдВ (рдКрдкрд░)ред рдЖрдк рдЗрд╕реЗ рдПрдХрд╛рдзрд┐рдХ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдХреЗ рд▓рд┐рдП рдХреИрд╕реЗ рдХрд░рддреЗ рд╣реИрдВ?
@ рдЭрд┐рдХрдирд░ рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ $pullAll
ред http://docs.mongodb.org/manual/reference/operator/update/pullAll/
рдХрдорд╛рд▓ рд╣реИ
@bnoguchi рд╣рд╛рдп, рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдкреБрд░рд╛рдирд╛ рдзрд╛рдЧрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ Google рдкрд░ рдкрд╣рд▓реА рдкреЛрд╕реНрдЯ рд╣реИ (рдФрд░ рдореБрдЭреЗ рдпрд╣рд╛рдВ рдПрдХ рд╕рдорд╛рдзрд╛рди рдорд┐рд▓рд╛)ред
рд╣рд╛рд▓рд╛рдВрдХрд┐, рдкреВрд░реНрдгрддрд╛ рдХреЗ рд▓рд┐рдП рдмрд╕ рдПрдХ рддреНрд╡рд░рд┐рдд рдкреНрд░рд╢реНрдиред рдХреМрди рд╕рд╛ рдЙрдкрдпреЛрдЧ рдкрд╕рдВрдж рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
me.friend.remove(uid);
me.save(callback);
рдпрд╛:
me.friends.pull(uid);
me.save(callback);
рд╕рд╛рде рд╣реА, рдХреНрдпрд╛ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдирдП "рдорд┐рддреНрд░" рдбрд╛рд▓рдиреЗ рдХрд╛ рдХреЛрдИ рдФрд░ рд╕рд╣реА рддрд░реАрдХрд╛ рд╣реИ (рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, push() рдХреЗ рд▓рд┐рдП рдмреЗрд╣рддрд░ рд╡рд┐рдХрд▓реНрдк):
me.friend.push(uid);
me.save(callback);
рдзрдиреНрдпрд╡рд╛рджред
рдкреБрди: рдкрд╣рд▓рд╛ рдкреНрд░рд╢реНрди, рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛, рд╡реНрдпрдХреНрддрд┐рдЧрдд рд╡рд░реАрдпрддрд╛ рддрдХ
рдкреБрди: рджреВрд╕рд░рд╛ рдкреНрд░рд╢реНрди, рдХрд┐рд╕ рддрд░рд╣ рд╕реЗ рдмреЗрд╣рддрд░?
рдЕрдзрд┐рдХ рдХреБрд╢рд▓/рддреЗрдЬ рдХреЗ рд░реВрдк рдореЗрдВред
рд╕рд╛рде рд╣реА, рдореИрдВрдиреЗ рджреЗрдЦрд╛ рдХрд┐ .pop(...) рдХреЛ рдХрд┐рд╕реА рд╕рд░рдгреА рдХреЛ рдЦрд╛рд▓реА рдХрд░рддреЗ рд╕рдордп рд╕рдорд╕реНрдпрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ, me.save(callback) рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж "рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рд╕рд╣реЗрдЬ рд╕рдХрддрд╛" рдлрд╝реАрд▓реНрдб рдлреЗрдВрдХрдирд╛, рдЬрдмрдХрд┐ рдирд┐рдХрд╛рд▓реЗрдВ() рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ - рдЗрд╕рд▓рд┐рдП рдореИрдВ рдкреВрдЫ рд░рд╣рд╛ рд╣реВрдВред
рдирд╣реАрдВ, push()
рдЬрд┐рддрдирд╛ рддреЗрдЬрд╝ рд╣реЛ рд╕рдХреЗ рдЙрддрдирд╛ рддреЗрдЬрд╝ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬрдмрдХрд┐ рдЖрдк рдЕрднреА рднреА save()
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдЖрдк me.update({}, { $push: { friend: uid } }).then()
рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдХрд┐ рдорд┐рдбрд▓рд╡реЗрдпрд░, рд╕рддреНрдпрд╛рдкрди, рдЖрджрд┐ рдХреЛ рдЫреЛрдбрд╝рдХрд░ рдереЛрдбрд╝рд╛ рддреЗрдЬ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдордЧреНрд░ рд╡рд┐рд▓рдВрдмрддрд╛ рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕реБрдзрд╛рд░ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред
рдкреБрди: pop()
рд╕рдорд╕реНрдпрд╛рдУрдВ, рдХреНрдпрд╛ рдЖрдк рдПрдХ рд╕реНрдЯреИрдХ рдЯреНрд░реЗрд╕ рдФрд░ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рд╛рде рдПрдХ рдЕрд▓рдЧ рдореБрджреНрджрд╛ рдЦреЛрд▓ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдкреБрди: рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ?
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдмреНрдпрд╛рд╣ рдХрд╛ рдкреНрд░рдпреЛрдЧ рди рдХрд░реЗрдВред