Mongoose: FindOne рдЧреИрд░-рдореМрдЬреВрдж рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рд▓реМрдЯрд╛рддрд╛ рд╣реИред

рдХреЛ рдирд┐рд░реНрдорд┐рдд 23 рдЬреБрд▓ре░ 2016  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: Automattic/mongoose

_рдкреНрд░рдердо: рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рджреВрд░ рдХрд░рдиреЗ рдХрд╛ рдЙрдкрд╛рдп:_
Model.findOne({id: 'blabla'}).select('email password createdAt').lean().exec()

рдореБрджреНрджрд╛:

рдореИрдВ рдПрдХ createdAt рдлрд╝реАрд▓реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ - рдЬрд┐рд╕рдореЗрдВ рдПрдХ рд╕рдордп рд╕реАрдорд╛ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рддреА рд╣реИ (TTL 24h ) рдФрд░ рдПрдХ рдбрд┐рдлрд╝реЙрд▓реНрдЯ ( Date.now ) рдорд╛рди- рдореЗрд░реЗ Users рдореЙрдбрд▓ рдореЗрдВ рдирд┐рд░реНрдорд╛рдг рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирдП рдмрдирд╛рдП рдЧрдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреА рддрд╛рд░реАрдЦ рдХреА рдЬрд╛рдирдХрд╛рд░реАред

рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЦрд╛рддреЗ рдХреЛ рд╕рдХреНрд░рд┐рдп рдХрд░рддрд╛ рд╣реИ рддреЛ рд╕рд┐рд╕реНрдЯрдо createdAt рдлрд╝реАрд▓реНрдб рдХреЛ рд╣рдЯрд╛ рджреЗрддрд╛ рд╣реИред
рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЦрд╛рддреЗ рдХреЛ рд╕рдХреНрд░рд┐рдп рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рддреЛ рд╕рд┐рд╕реНрдЯрдо 24 рдШрдВрдЯреЛрдВ рдХреЗ рдмрд╛рдж рдЦрд╛рддреЗ рдХреЛ Users рд╕рдВрдЧреНрд░рд╣ рд╕реЗ рд╣рдЯрд╛ рджреЗрддрд╛ рд╣реИред

рдЕрдкрдиреЗ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ, рдореИрдВ рдкрд╣рд▓реЗ createdAt рдлрд╝реАрд▓реНрдб рдХреА рдореМрдЬреВрджрд╛ рдЬрд╛рдБрдЪ рдХрд░рддрд╛ рд╣реВрдБред
рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕рдХреНрд░рд┐рдп рдирд╣реАрдВ рд╣реИ рддреЛ рдореИрдВ Account is not activated. рдЬреИрд╕рд╛ рд╕рдВрджреЗрд╢ рджрд┐рдЦрд╛рддрд╛ рд╣реВрдВ

рдЬрдм рдореИрдВ рдЙрдкрд░реЛрдХреНрдд рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рдЙрджреНрджреЗрд╢реНрдп рдХреЗ рд▓рд┐рдП FindOne рд╡рд┐рдзрд┐ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдореБрдЭреЗ Date.now рдореВрд▓реНрдп рдорд┐рд▓рддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рдХреЛрдИ createdAt рдлрд╝реАрд▓реНрдб рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдиреЗ рдЕрдкрдирд╛ рдЦрд╛рддрд╛ рд╕рдХреНрд░рд┐рдп рдХрд░ рджрд┐рдпрд╛ рд╣реИ .

рдореЗрд░реЗ User рдореЙрдбрд▓ рдореЗрдВ createdAt рдлрд╝реАрд▓реНрдб:
createdAt: { type: Date, expires: '24h', default: Date.now },

рдореЗрд░реА рд╡рд┐рдзрд┐:
Users.findOne({email: username}, 'email, password, createdAt', function(err, user) {

рдЙрдкрд░реЛрдХреНрдд рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ createdAt рдореВрд▓реНрдп рд╣рд░ рдмрд╛рд░ рд▓реМрдЯрд╛рддрд╛ рд╣реИред

рдкреАрдПрд╕: рдореИрдВрдиреЗ рдЗрд╕ рдореБрджреНрджреЗ рдХреА рдЦреЛрдЬ рдХреА рд▓реЗрдХрд┐рди рдореИрдВ рдХреБрдЫ рднреА рдирд╣реАрдВ рдХрд░ рд╕рдХрд╛ред

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рдкрд░ рдареЛрдХрд░ рдЦрд╛рдИред
@ vkarpov15 рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрджреНрдпрдкрд┐ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рд╕рд╣реЗрдЬрдиреЗ рдкрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕реЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ find рдкрд░ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреНрд░рд╛рдордХ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕реЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдбреАрдмреА рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╕рдЯреАрдХ рдбреЗрдЯрд╛ рд╡рд╛рдкрд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рд╣реИ рдирд╛? рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╡реЛрдЯ рджреВрдВрдЧрд╛ред

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

рдбрд┐рдлреЙрд▓реНрдЯреНрд╕ рдРрд╕реЗ рд╣реА рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдЬрдм doc mongoose рдореЗрдВ рдХреЛрдИ createdAt рдлрд╝реАрд▓реНрдб рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ рддреЛ рд╡рд╣ рдПрдХ рдЬреЛрдбрд╝ рджреЗрдЧрд╛ред рдпрджрд┐ рдЖрдк рдПрдХ рдирдпрд╛ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдмрдирд╛рддреЗ рд╕рдордп рдХреЗрд╡рд▓ createdAt рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ:

schema.pre('save', function(next) {
  if (this.isNew) {
    this.createdAt = Date.now();
  }
  next();
});

рд╕рд╛рде рд╣реА, рдореИрдВ рдЖрдкрдХреЗ рдкреНрд░рдХреНрд╖реЗрдкрдг Users.findOne({email: username}, 'email, password, createdAt' /** <-- remove commas here */) рдХреЛ рдЕрд▓реНрдкрд╡рд┐рд░рд╛рдо рд╕реЗ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрд╢рдВрд╕рд╛ рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛ред

рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рдкрд░ рдареЛрдХрд░ рдЦрд╛рдИред
@ vkarpov15 рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрджреНрдпрдкрд┐ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рд╕рд╣реЗрдЬрдиреЗ рдкрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕реЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ find рдкрд░ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреНрд░рд╛рдордХ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕реЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдбреАрдмреА рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╕рдЯреАрдХ рдбреЗрдЯрд╛ рд╡рд╛рдкрд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рд╣реИ рдирд╛? рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╡реЛрдЯ рджреВрдВрдЧрд╛ред

рдЬрд░реВрд░реА рдирд╣реАрдВ рдХрд┐, рдиреЗрд╡рд▓реЗ рдХреЗ рдкрд╛рд╕ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╕реНрдерд╛рди рд╣реИрдВ рдЬрд╣рд╛рдВ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдбреАрдмреА рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╕рдЯреАрдХ рдбреЗрдЯрд╛ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ: рдЧреЗрдЯрд░реНрд╕, рд╡рд░реНрдЪреБрдЕрд▓ рдЗрддреНрдпрд╛рджрд┐ред рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ, рд╣рдо рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдкрд░ рдЬреЛрд░ рджреЗрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдмрджрд▓рдиреЗ рд╕реЗ рдмрд╣реБрдд рд╕реЗ рд▓реЛрдЧреЛрдВ рдХрд╛ рдХреЛрдб рдЯреВрдЯ рдЬрд╛рдПрдЧрд╛, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЗрд╕реЗ рддрдм рддрдХ рдирд╣реАрдВ рдмрджрд▓реЗрдВрдЧреЗ рдЬрдм рддрдХ рдЗрд╕реЗ рдмрджрд▓рдиреЗ рдХреА рдмрд╣реБрдд рдЕрдзрд┐рдХ рдорд╛рдВрдЧ рди рд╣реЛред рдпрд╣рд╛рдБ рдПрдХ рдЙрдкрд╛рдп рд╣реИ:

createdAt: {
  type: Date,
  default: function() {
    if (this.isNew) { return new Date(); }
    return undefined;
  }
}

рдпрд╣ рдРрд╕рд╛ рдХрд░реЗрдЧрд╛ рдХрд┐ createdAt рдХреЗрд╡рд▓ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╕рд╣реЗрдЬрддреЗ рд╕рдордп рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ undefined рдпрджрд┐ рдЖрдкрдиреЗ db рд╕реЗ рдХреЛрдИ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рд▓реЛрдб рдХрд┐рдпрд╛ рд╣реИ рдФрд░ createdAt рдирд╣реАрдВ рд╣реИ рд╕реЗрдЯред

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

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

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

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

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

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

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