Mongoose: рд╕рд░рдгреА рд╕реЗ рдирд┐рдХрд╛рд▓реЗрдВ [рдСрдмреНрдЬреЗрдХреНрдЯ рдЖрдИрдбреА]

рдХреЛ рдирд┐рд░реНрдорд┐рдд 24 рдордИ 2011  ┬╖  10рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: Automattic/mongoose

рдирдорд╕реНрддреЗ,

рдореИрдВ 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);

рд╕рднреА 10 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдмреНрдпрд╛рд╣ рдХрд╛ рдкреНрд░рдпреЛрдЧ рди рдХрд░реЗрдВред

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() рд╕рдорд╕реНрдпрд╛рдУрдВ, рдХреНрдпрд╛ рдЖрдк рдПрдХ рд╕реНрдЯреИрдХ рдЯреНрд░реЗрд╕ рдФрд░ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рд╛рде рдПрдХ рдЕрд▓рдЧ рдореБрджреНрджрд╛ рдЦреЛрд▓ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдкреБрди: рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ?

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

efkan picture efkan  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

wlingke picture wlingke  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

jeneser picture jeneser  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

ghost picture ghost  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

tarun1793 picture tarun1793  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ