рдореИрдВ рдореЙрдбрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред рд╕реНрдХреАрдорд╛ рдмрд╛рдзрд╛рдУрдВ рдХреЗ рдмрд╛рд╡рдЬреВрдж рдХрд┐рд╕реА рднреА рдореВрд▓реНрдп рдкрд░ рдЕрджреНрдпрддрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрджреНрдпрддрди рд╡рд┐рдзрд┐
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдпрджрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдПрдирдо рд╕рдВрдкрддреНрддрд┐ рдХреЗ рд╕рд╛рде рдПрдХ рд╕реНрдХреАрдорд╛ рд╣реИ, рддреЛ рдЕрджреНрдпрддрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдореИрдВ рдПрдирдо рдмрд╛рдзрд╛ рдХреЗ рдмрд╛рд╣рд░ рдХрд┐рд╕реА рднреА рдореВрд▓реНрдп рдореЗрдВ рдмрджрд▓ рд╕рдХрддрд╛ рд╣реВрдВ, рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╕реЗрдЯ рдХреЛ рдЕрдорд╛рдиреНрдп рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред
рдЕрджреНрдпрддрди рдорд╛рди рдорд╛рдиреНрдп рдирд╣реАрдВ рд╣реЛрдиреЗ рдкрд░ рдЕрдкреЗрдХреНрд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдПрдХ рддреНрд░реБрдЯрд┐ рдлреЗрдВрдХрдирд╛ рдерд╛ред
рдореИрдВ рдкрд╣рд▓реА рддреНрд░реБрдЯрд┐ рдкрд░ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрджреНрдпрддрди рд╡рд┐рдзрд┐ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рд╡рд┐рдХрд▓реНрдк рд╕реБрдЭрд╛рддрд╛ рд╣реВрдВ рдпрд╛ рдирд╣реАрдВред
рдЖрдк strict
рд╕реНрдХреАрдорд╛ рд╕реЗрдЯрд┐рдВрдЧ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдирд╛ рдЪрд╛рд╣ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдХрд┐рд╕реА рднреА рдЕрдорд╛рдиреНрдп рд╕реНрдХреАрдорд╛ рдкрде рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░ рджреЗрдЧреА рдФрд░ рдмрд╛рдХреА рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░ рджреЗрдЧреАред рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рдлреЗрдВрдХреА рдЬрд╛рддреА рд╣реИред
рдирдИ рд╕реНрдХреАрдорд╛ ({..}, {рд╕рдЦреНрдд: рд╕рдЪ})
рдПрдХ рд╕рдорд╛рди рдкреБрд▓ рдЕрдиреБрд░реЛрдз рд╣реИ рдЬреЛ рд╡рд┐рд▓рдп рд╣реЛрдиреЗ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣рд╛ рд╣реИ рдЬреЛ рд╕реНрдХреАрдорд╛ рдореЗрдВ рдореМрдЬреВрдж рдкрдереЛрдВ рдХреЛ рд╕реЗрдЯ рдХрд░рддреЗ рд╕рдордп рдлреЗрдВрдХрддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдпрд╣ model.update
рджреМрд░рд╛рди рдирд╣реАрдВ рдлреЗрдВрдХрддрд╛ рд╣реИред рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдЗрд╕реЗ рдЙрдкрд░реЛрдХреНрдд рдкреАрдЖрд░ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдП рдФрд░ рдЧрд▓рддреА рдХреЛ рдХреЙрд▓рдмреИрдХ рдореЗрдВ рдкрд╛рд╕ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдПред
рд╣рд╛рдп рдлрд┐рд░ рд╕реЗ, рдЖрдкрдХреЗ рддреНрд╡рд░рд┐рдд рдЙрддреНрддрд░ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред
рдореИрдВ рдЕрдорд╛рдиреНрдп рд░рд╛рд╕реНрддреЛрдВ рдХреА рдмрд╛рдд рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рдерд╛ рдмрд▓реНрдХрд┐ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкрде рдХреЗ рднреАрддрд░ рдмрд╛рдзрд╛ рдбрд╛рд▓рдиреЗ рдХреА рдмрд╛рдд рдХрд░ рд░рд╣рд╛ рдерд╛ред
рдпрд╣ рдЙрджрд╛рд╣рд░рдг рд▓реЗрдВ
рд╡рд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ = рдирдИ рд╕реНрдХреАрдорд╛ ({
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо: {
рдЯрд╛рдЗрдк рдХрд░реЗрдВ: рд╕реНрдЯреНрд░рд┐рдВрдЧ,
рд▓реЛрдЕрд░рдХреЗрд╕: рд╕рдЪ,
рдЯреНрд░рд┐рдо: рд╕рдЪ,
рдЕрджреНрд╡рд┐рддреАрдп: рд╕рдЪ
},
рдирд╛рдо: {
рдЯрд╛рдЗрдк рдХрд░реЗрдВ: рд╕реНрдЯреНрд░рд┐рдВрдЧ,
рдЯреНрд░рд┐рдо: рд╕рдЪ,
рдЖрд╡рд╢реНрдпрдХ: рд╕рдЪ,
рдЕрджреНрд╡рд┐рддреАрдп: рдЭреВрдард╛,
рд╕реВрдЪрдХрд╛рдВрдХ: рд╕рдЪ
},
рдкрд╛рд╕рд╡рд░реНрдб: {
рдЯрд╛рдЗрдк рдХрд░реЗрдВ: рд╕реНрдЯреНрд░рд┐рдВрдЧ,
рдЖрд╡рд╢реНрдпрдХ: рд╕рдЪ,
рдЪреБрдиреЗрдВ: рдЭреВрдард╛,
рд╕реЗрдЯ рдХрд░реЗрдВ: рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдХрд░реЗрдВ
},
рднреВрдорд┐рдХрд╛: {
рдЯрд╛рдЗрдк рдХрд░реЗрдВ: рд╕реНрдЯреНрд░рд┐рдВрдЧ,
"рдбрд┐рдлреЙрд▓реНрдЯ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛',
"рдПрдирдо": ['рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛', 'рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ', 'рд░реВрдЯ']
},
рдмрдирд╛рдпрд╛ рдерд╛: {
рдкреНрд░рдХрд╛рд░: рддрд┐рдерд┐,
"рдбрд┐рдлрд╝реЙрд▓реНрдЯ": рджрд┐рдирд╛рдВрдХ.рдЕрдм
}
}, {рд╕рдЦреНрдд: рд╕рдЪ});
users.update({"username" : "test"}, {"role" : "thisShowldFail"}, function (err, val){
...
});
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╕рдЦреНрдд рд╕реНрдХреАрдорд╛ рд╡рд┐рдХрд▓реНрдк рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдкрд░ рднреА рдЕрдм "рдкрд░реАрдХреНрд╖рдг" рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рднреВрдорд┐рдХрд╛ "thisShowldFail" рд╣реИред
рд╕рдореНрдорд╛рди рдПрдирдо, рдФрд░ рдЕрдиреНрдп рд╕рдорд╛рди рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рдЕрдкрдбреЗрдЯ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП?
рдЖрдк рд╕рд╣реА рд╣реИрдВ, рдЗрд╕реЗ рдПрдирдореЛрдВ рдХреЛ рдорд╛рдиреНрдп рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ рдЗрд╕рдХреЗ рд▓рд┐рдП рдХрд╣реАрдВ рдЯрд┐рдХрдЯ рд╣реИред
+1, рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЗ рдХрд╛рд░рдг #update рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред
рдХреНрдпрд╛ рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ .update рдЙрди рд╕рднреА рдЪреАрдЬрд╝реЛрдВ рдХреЛ рдмрдирд╛ рджреЗ рдЬреЛ рдПрдХ рдирдпрд╛ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ + .save рдХрд░реЗрдЧрд╛?
рдпрджрд┐ рдЕрдкрд░рд░реНрдЯ рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рднреА
рдлрд┐рд▓рд╣рд╛рд▓ рдирд╣реАрдВ
рдореЗрд░рд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рд╕рдВрднрд╡ рд╣реИ/рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рд╣реИ ...? :)
рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд╕рдВрдмрдВрдзрд┐рдд #472
+1
рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдирдЬрд╛рди рд╣реИ рдХрд┐ рдЕрджреНрдпрддрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рд╣реЛрдЧрд╛: рдбрд┐рдлрд╝реЙрд▓реНрдЯ, рд╕реЗрдЯрд░реНрд╕, рд╕рддреНрдпрд╛рдкрди рдФрд░ рдПрдирдоред рдпрджрд┐ рдХреЛрд░ рдСрдкрд░реЗрд╢рдВрд╕ рдЗрд╕рдХрд╛ рдкрд╛рд▓рди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рд╕реНрдХреАрдорд╛ рдХрд╛ рдХреНрдпрд╛ рдЙрдкрдпреЛрдЧ рд╣реЛрддрд╛ рд╣реИред
+1
рдореБрдЭреЗ рдиреЗрд╡рд▓рд╛ рдкрд╕рдВрдж рд╣реИ рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдпрд╣ рдЕрдкрдбреЗрдЯ рдХреЛ рдорд╛рдиреНрдп рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рддреЛ рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдмрд╣реБрдд рдХрдо рдорджрджрдЧрд╛рд░ рд╣реИред рдореЗрд░реЗ рдкрд╛рд╕ рдмрдбрд╝реЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рд╣реИрдВ рдФрд░ рдореИрдВ рдЙрдиреНрд╣реЗрдВ рдХреЗрд╡рд▓ рд╕рддреНрдпрд╛рдкрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд╛рдЙрдирд▓реЛрдб рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ред
рдпрд╣ рдореИрдВ рдХреВрдж рд░рд╣рд╛ рд╣реВрдВред рдореИрдВ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдореИрдВ рдереЛрдбрд╝рд╛ рд╕рд╛ рдЧреЛрддрд╛ рд▓рдЧрд╛ рд░рд╣рд╛ рд╣реВрдВред
рд▓рдХреНрд╖реНрдп рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╣реИ:
рдореБрдЭреЗ рдпрдХреАрди рднреА рдирд╣реАрдВ рд╣реИ рдХрд┐ рдореИрдВ рд╕рдлрд▓ рд╣реЛрдКрдВрдЧрд╛, рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕реЗ рдЖрдЬрдорд╛рдКрдВрдЧрд╛ред рдореИрдВ рд╕рддреНрдпрд╛рдкрдирдХрд░реНрддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░реВрдВрдЧрд╛ред
рдореБрдЭреЗ рд╢реБрднрдХрд╛рдордирд╛рдПрдБ рджреЗрдВ!
рдорд░реНрдХ.
+1
+1
рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрддрд╛ рдЕрдЧрд░ .update
рд╕рдорд░реНрдерд┐рдд рд╕рддреНрдпрд╛рдкрдиред
рдЯрдХреНрдХрд░ +1
рдКрдмрдбрд╝-рдЦрд╛рдмрдбрд╝ рдЯрдХреНрдХрд░ +1
рдХреГрдкрдпрд╛ рдЕрджреНрдпрддрди рдкрд░ рд╕рддреНрдпрд╛рдкрди рдЬреЛрдбрд╝реЗрдВ!
+1
рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: -2 рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдиреЗрд╡рд▓реЗ рдХреЛ рд╕рддреНрдпрд╛рдкрди рдкреНрд░рднрд╛рд░реА рд▓реЗрдирд╛ рдЪрд╛рд╣рд┐рдП .. рдпрджрд┐ рдЖрдк рд╕рддреНрдпрд╛рдкрди рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдЕрдиреНрдп рд╡рд┐рд╢реЗрд╖ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреИрд╕реЗ рдХрд┐ JSON рд╕реНрдХреАрдорд╛ рд╕рддреНрдпрд╛рдкрди рдХреА рдЕрдиреБрдорддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛
@thalesfsp рд╣рд╛рдБред рдЕрддреАрдд рдореЗрдВ рдЗрд╕рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдирд┐рдпрдо рдмрд╣реБрдд рд╣реА рднрджреНрджреЗ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рд╕реНрдореГрддрд┐ рдореЗрдВ рдХреЛрдИ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ рдФрд░ рдХрдИ рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдЕрд╕рдВрдЧрдд рдФрд░ рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реИред
рдУрдкрди рд╕реЛрд░реНрд╕ рдХреА рд╕реБрдВрджрд░рддрд╛: рдпрджрд┐ рдЖрдк рдПрдХ рд╕реБрд╡рд┐рдзрд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЗрд╕реЗ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдкрд╛рд╕рд┐рдВрдЧ рдЯреЗрд╕реНрдЯ рдФрд░ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдХреЗ рд╕рд╛рде рдкреБрд▓ рдЕрдиреБрд░реЛрдз рд╕рдмрдорд┐рдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рд╕рд╛рдмрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдареАрдХ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рдПрдХ рдмрд╣реБрдд рд╣реА рдЧрдВрднреАрд░ рд╕реАрдорд╛ред рдПрдХ рдкреИрдЪ рдХрд╛ рдкреАрдЫрд╛ рдХрд░рддреЗ рд╣реБрдП, рдХреНрдпрд╛ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреНрдпрд╛ рдХреЛрдИ рд╕рддреНрдпрд╛рдкрдирдХрд░реНрддрд╛ рдЪрд▓рд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рд╕реАрдзреЗ рд╕реНрдХреАрдорд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдХреНрд░реЙрд▓ рдХрд░рдирд╛ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд╣реЛрдЧрд╛? рдореИрдВ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдХрд╕реНрдЯрдо рд╕рддреНрдпрд╛рдкрдирдХрд░реНрддрд╛рдУрдВ рдФрд░ рдЕрджреНрдпрддрди рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдПрдирдо рдирд┐рдпрдореЛрдВ рдХреА рдкрд░рд╡рд╛рд╣ рдХрд░рддрд╛ рд╣реВрдВред рдЬрдм рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рд╕рд╣реЗрдЬрд╛ рдЧрдпрд╛ рдерд╛, рддреЛ рдЕрдиреНрдп рд╕реНрдХреАрдорд╛ рдмрд╛рдзрд╛рдУрдВ рдХреЛ рдкрд╣рд▓реЗ рд╣реА рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдерд╛, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИред рдХреНрдпрд╛ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдЗрддрдирд╛ рд╕рд░рд▓реАрдХрд░рдг рдХреЗрд╡рд▓ рдПрдирдо рдФрд░ рд╕рддреНрдпрд╛рдкрдирдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ рдФрд░ рдЕрджреНрдпрддрди рдХреЗ рджреМрд░рд╛рди рдХрд┐рд╕реА рднреА рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЛ рд░рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ рд╣рдЯрд╛ рджреЗрддрд╛ рд╣реИ?
+1 рдЯрдХреНрдХрд░, рдпрд╣ рдПрдХ рдмрд╣реБрдд рд╣реА рдЙрдкрдпреЛрдЧреА рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реЛрдЧреА - рдЕрдкрдбреЗрдЯ рдХрд░рддреЗ рд╕рдордп рдореИрдВ рд╕реНрдХреАрдорд╛ рд╕реЗ рд╕рдореНрдорд╛рдирд┐рдд рдорд┐рдирдЯ/рдЕрдзрд┐рдХрддрдо рдЖрджрд┐ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ - рдЕрдиреНрдпрдерд╛ рдореИрдВ рдХреБрдЫ рдХреЗ рд▓рд┐рдП рдмреЙрдпрд▓рд░рдкреНрд▓реЗрдЯ рддрд░реНрдХ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдЬреЛ рдХреБрдЫ рдиреЗрд╡рд▓рд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИ
рдРрд╕рд╛ рд╣реЛрддреЗ рд╣реБрдП рджреЗрдЦрдирд╛ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред рдлрд┐рд▓рд╣рд╛рд▓ рдореЗрд░рд╛ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдСрдмреНрдЬреЗрдХреНрдЯ рдвреВрдВрдв рд░рд╣рд╛ рд╣реИ, рдлрд╝реАрд▓реНрдб рдмрджрд▓ рд░рд╣рд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ рд╕рд╣реЗрдЬ рд░рд╣рд╛ рд╣реИ, рдЬреЛ рд╕рддреНрдпрд╛рдкрди рдорд┐рдбрд▓рд╡реЗрдпрд░ рдХреЛ рд╕рдХреНрд░рд┐рдп рдХрд░рддрд╛ рд╣реИред рдбреЙрдХреНрд╕ рдХреЗ рдЕрдиреБрд╕рд╛рд░:
Tank.findById(id, function (err, tank) {
tank.size = 'large';
tank.save(function (err) {
// Document updated, do something with it
});
});
рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рдЗрд╕реЗ рдореБрд╢реНрдХрд┐рд▓ рдмрдирд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ update
рдХрдорд╛рдВрдб рд╕реАрдзреЗ рдореЛрдВрдЧреЛ рдХреЛ рд╕реМрдВрдкрддрд╛ рд╣реИ, рдФрд░ рдкреВрд░рд╛ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдорд╛рдиреНрдп рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдореГрддрд┐ рдореЗрдВ рдирд╣реАрдВ рдмреИрдарддрд╛ рд╣реИред рддреЛ @BrianHoldsworth рджреНрд╡рд╛рд░рд╛ рд╕реБрдЭрд╛рдпрд╛ рдЧрдпрд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдЪреНрдЫреА рдЬрдЧрд╣ рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИ, рд╕реНрдХреАрдорд╛ рдЪрд▓ рд░рд╣реЗ рд╕рддреНрдпрд╛рдкрди рдХреЛ рдХреЗрд╡рд▓ рдЙрди рдлрд╝реАрд▓реНрдб рдХреЗ рд╡рд┐рд░реБрджреНрдз рдкрд╛рд░реНрд╕ рдХрд░рдирд╛ рдЬрд┐рдиреНрд╣реЗрдВ рдЕрджреНрдпрддрди рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рд╣реИред
@aheckmann рдХреНрдпрд╛ рдЖрдк рд╣рдореЗрдВ рдкрд┐рдЫрд▓реЗ (рдЕрд╕рдлрд▓) рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкреНрд░рдпрд╛рд╕реЛрдВ рдкрд░ рдХреБрдЫ рдФрд░ рд╡рд┐рд╡рд░рдг рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЬреЛ рдХреЛрдИ рднреА рдЗрд╕ рдкреИрдЪ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реИ рд╡рд╣ рдлрд┐рд░ рд╕реЗ рд╡рд╣реА рдЧрд▓рддрд┐рдпрд╛рдБ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ?
рдореИрдВ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдХрд╕реНрдЯрдо рд╕рддреНрдпрд╛рдкрдирдХрд░реНрддрд╛рдУрдВ рдФрд░ рдЕрджреНрдпрддрди рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдПрдирдо рдирд┐рдпрдореЛрдВ рдХреА рдкрд░рд╡рд╛рд╣ рдХрд░рддрд╛ рд╣реВрдВред рдЬрдм рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рд╕рд╣реЗрдЬрд╛ рдЧрдпрд╛ рдерд╛, рддреЛ рдЕрдиреНрдп рд╕реНрдХреАрдорд╛ рдмрд╛рдзрд╛рдУрдВ рдХреЛ рдкрд╣рд▓реЗ рд╣реА рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдерд╛, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИред рдХреНрдпрд╛ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдЗрддрдирд╛ рд╕рд░рд▓реАрдХрд░рдг рдХреЗрд╡рд▓ рдПрдирдо рдФрд░ рд╕рддреНрдпрд╛рдкрдирдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ рдФрд░ рдЕрджреНрдпрддрди рдХреЗ рджреМрд░рд╛рди рдХрд┐рд╕реА рднреА рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЛ рд░рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ рд╣рдЯрд╛ рджреЗрддрд╛ рд╣реИ?
@BrianHoldsworth рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ required: true
рд╕рддреНрдпрд╛рдкрди рдмрд╛рдзрд╛ рд╡рд╛рд▓реЗ рдлрд╝реАрд▓реНрдб рдХреЛ рд░рд┐рдХреНрдд рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдЕрджреНрдпрддрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ? рд╕рддреНрдпрд╛рдкрди рддреНрд░реБрдЯрд┐ рдХреЛ рд╕рдХреНрд░рд┐рдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред
рдореБрдЭреЗ рдЗрд╕рдореЗрдВ рднреА рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реИред рд╢рд╛рдпрдж рдПрдХ рдкреНрд▓рдЧ-рдЗрди .update() рд╡рд┐рдзрд┐ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдиреЗ рдФрд░ рд╕рддреНрдпрд╛рдкрди рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд┐рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ? рдЗрд╕ рддрд░рд╣, рдЖрдВрд╢рд┐рдХ рд╕рдорд╛рдзрд╛рди рднреА рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рджреВрд╕рд░реА рдУрд░, рдпрджрд┐ рдпрд╣ рдореВрд▓ рдореЗрдВ рд╣реЛрддрд╛, рддреЛ рдпрд╣ рдЕрдкреЗрдХреНрд╖рд╛ рдХреА рдЬрд╛рддреА рдереА рдХрд┐ рдпрд╣ рд╣рд░ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рддреНрдпрд╛рдкрди рдХреЛ рд╕рдВрднрд╛рд▓реЗрдЧрд╛ рдФрд░ 100% рдордЬрдмреВрдд рд╣реЛрдЧрд╛ред
рдореИрдВрдиреЗ рдЗрд╕рдореЗрдВ рдХрд╕реНрдЯрдо рд╕рддреНрдпрд╛рдкрдирдХрд░реНрддрд╛ рдФрд░ рдПрдирдо рджреЛрдиреЛрдВ рдХреЗ рд╕рд╛рде рднреА рднрд╛рдЧ рд▓рд┐рдпрд╛ рд╣реИред рдЦреЛрдЬ рдХрд░рддреЗ рд╕рдордп рдФрд░ рдлрд┐рд░ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ, рдЬрдм рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдореЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЙрдк-рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рд╕рдВрд░рдЪрдирд╛рдПрдВ рд╣реЛрддреА рд╣реИрдВ, рддреЛ рд╕рд╛рдорд╛рдиреНрдп рдХреЗрд╕ рдХреЛрдб рд▓рд┐рдЦрдирд╛ рдмрд╣реБрдд рдореБрд╢реНрдХрд┐рд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
+1 рдЗрд╕реЗ рдЯрдХреНрдХрд░ рджреЗрдВред
рдмреНрд░рд╛рдпрди рдХрд╛ рд╕рдорд╛рдзрд╛рди рдмрд╣реБрдд рд╕реБрдВрджрд░ рд▓рдЧрддрд╛ рд╣реИред рдкреИрдЪ рдмреАрдЯрд╛ рд╣рд┐рдЯ рд╣реЛрдиреЗ рдкрд░ рдЕрдзрд┐рд╕реВрдЪрд┐рдд рд╣реЛрдирд╛ рдЕрдЪреНрдЫрд╛ рд▓рдЧреЗрдЧрд╛ред
+1
рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ +1
+1
+1
+1
+1
3.9.3 рдореЗрдВ update()
рдореЗрдВ 2 рд╡рд┐рд╢реЗрд╖ рд╡рд┐рдХрд▓реНрдк рд╣реЛрдВрдЧреЗ, setDefaultsOnInsert
рдФрд░ runValidators
, рдЬреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реЗрдЯ рдХрд░реЗрдЧрд╛ рдФрд░ рдЖрдкрдХреА рдХреНрд╡реЗрд░реА рдкрд░ рд╕рддреНрдпрд╛рдкрдирдХрд░реНрддрд╛ рдЪрд▓рд╛рдПрдЧрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдг рджреЗрдЦреЗрдВ, рдЕрднреА рддрдХ рдХреЛрдИ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдирд╣реАрдВ :(
рдмрд╣реБрдд рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж - рдпрд╣ рдПрдХ рдЕрдЪреНрдЫрд╛ рдлрд┐рдХреНрд╕ рд╣реИ!
@ vkarpov15 рдореИрдВрдиреЗ рдЖрдкрдХреЗ рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ findOneAndUpdate рдореЗрдВ рд╕рддреНрдпрд╛рдкрди рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреА рдХрд┐рдпрд╛ рдерд╛ред рдкреАрдЖрд░ #2393 рджреЗрдЦреЗрдВред
рдирдорд╕реНрддреЗ, рдХреНрдпрд╛ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдЕрджреНрдпрддрди рдкрд░ рд╕рддреНрдпрд╛рдкрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдерд┐рд░ рд╕рдВрд╕реНрдХрд░рдг 3.9 рдХрдм рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛?
рдзрдиреНрдпрд╡рд╛рдж
@AlexandreAWE рдЕрдЪреНрдЫрд╛ рд╕рд╡рд╛рд▓ рд╣реИред рдореИрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ 4.0 рдкрд░ рдЪреАрдЬреЛрдВ рдХреЛ рд▓рдкреЗрдЯ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ 3.9.x рд╢рд╛рдЦрд╛ рдХрд╛ рдмреАрдЯрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдЕрднреА рдпрд╣ "рдпрд╣ рдкреВрд░рд╛ рд╣реЛрдиреЗ рдкрд░ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛"ред рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдХреНрд░рд┐рд╕рдорд╕ рд╕реЗ рдкрд╣рд▓реЗ рдЖрд░рд╕реА рдирд┐рдХрд▓ рдЬрд╛рдПрдЧреАред
@ vkarpov15 рдпрд╣ 3.9.x рд╕реНрдерд┐рд░ рдкрд░ рдХреИрд╕реЗ рдЖ рд░рд╣рд╛ рд╣реИ? рдореЗрд░реЗ рд╡рд░реНрддрдорд╛рди рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рд╣рд░ рдмрд╛рд░ рдЦреЛрдЬрдиреЗ рдФрд░ рд╕рд╣реЗрдЬрдиреЗ рдХреЗ рдмрджрд▓реЗ рдЕрджреНрдпрддрди рдкрд░ рд╕рддреНрдпрд╛рдкрди рд╣реЛрдирд╛ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред
@andrewholsted рдореЛрдВрдЧреЛрдбрдм рдбреНрд░рд╛рдЗрд╡рд░ 2.0 рдФрд░ рдореЛрдВрдЧреЛрдбрдм рд╕рд░реНрд╡рд░ 2.8 рдкрд░ рд╕реНрдерд┐рд░ рд╣реЛрдиреЗ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣рд╛ рд╣реИ - рдпрд╣ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЗрд╕ рдорд╣реАрдиреЗ рд╣реЛ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореЛрдВрдЧреЛрдбрдм рдХреЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдФрд░ рдирд╡реАрдирддрдо рдбреНрд░рд╛рдЗрд╡рд░ рдХрд╛ рд╕рдорд░реНрдерди рдХрд┐рдП рдмрд┐рдирд╛ 4.0 рдЬрд╣рд╛рдЬ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдереЛрдбрд╝рд╛ рдФрд░ рд╡рд┐рд╕реНрддрд╛рд░ рдХреЗ рд▓рд┐рдП рдореЗрд░рд╛ рдмреНрд▓реЙрдЧ рджреЗрдЦреЗрдВред
рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рдЧреВрдВрдЧрд╛ рдкреНрд░рд╢реНрди, рд▓реЗрдХрд┐рди рдбреЗрдЯрд╛ рдХреЛ рдЕрджреНрдпрддрди рдХреНрдпреЛрдВ рди рдХрд░реЗрдВ рдФрд░ рдорд╛рдиреНрдп рдХрд░реЗрдВ рдХрд┐ рдореЛрдВрдЧреЛрдбрдм рдореЗрдВ рдЬрд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╕реНрдХреАрдорд╛ рдХреЗ рд╡рд┐рд░реБрджреНрдз?
рд╕рд╛рде рд╣реА, +1
рдорд╛рд░реНрдХ рдПрдВрдб рд╡реЗрдЯ
3.9 рд╕реНрдерд┐рд░ рд╣реЛрдиреЗ рддрдХ рдкреНрд░рддреАрдХреНрд╖рд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ :)
рдХреНрдпрд╛ рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рдЕрднреА рддрдХ рд╣реИ? 3.9 рдХрд╛ рдмреЗрд╕рдмреНрд░реА рд╕реЗ рдЗрдВрддрдЬрд╛рд░ рд╣реИ.. рдХреНрдпрд╛ рдпрд╣ рдЙрдкрд▓рдмреНрдз рд╣реЛрдЧрд╛?
рдЕрд╕реНрдерд┐рд░ рд╕рдВрд╕реНрдХрд░рдг рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк npm install mongoose@unstable
рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред 4.0 рдХреЗ рд▓рд┐рдП рд╡рд░реНрддрдорд╛рди рдИрдЯреАрдП 25 рдорд╛рд░реНрдЪ рд╣реИ - рдЗрд╕реЗ рдЬрд╛рдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдЪреНрдЫреА рдЬрдЧрд╣ рдореАрд▓ рдХрд╛
рдмрд╕ рдХрд▓ рд░рд╛рдд рдЗрд╕ рдореБрджреНрджреЗ рдореЗрдВ рднрд╛рдЧ рдЧрдпрд╛ред рдЦреБрд╢реА рд╣реИ рдХрд┐ рдореИрдВ рдЕрдХреЗрд▓рд╛ рдирд╣реАрдВ рд╣реВрдБ! рдореИрдВ рдЗрд╕ рдмрджрд▓рд╛рд╡ рдХреЗ рдЬрд╛рд░реА рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрддреНрд╕рд╛рд╣рд┐рдд рд╣реВрдВ, рдЖрдк рдЬреЛ рдХреБрдЫ рднреА рдХрд░рддреЗ рд╣реИрдВ рдЙрд╕рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!
+1
рдкрддрд╛ рдирд╣реАрдВ рдХреНрдпреЛрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдмрдВрдж рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдореИрдВ рдЕрднреА рднреА рдЗрд╕рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред
рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ findOneAndUpdate () рдХреЗ рд▓рд┐рдП рдПрдирдо рд╕рддреНрдпрд╛рдкрди рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ рд░рдирд╡реИрд▓рд┐рдбреЗрдЯрд░реНрд╕ рдХреЛ рд╕рд╣реА рдкрд░ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде рднреАред
@ m1cah рдХреГрдкрдпрд╛ рдЙрджрд╛рд╣рд░рдг рдкреНрд░рджрд╛рди рдХрд░реЗрдВ рдЬреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдХреНрдпрд╛ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЗрд╕рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдг рд╣реИрдВ рдФрд░ рд╡реЗ рдкрд╛рд╕ рд╣реЛ рдЧрдП рд╣реИрдВ ...
@ vkarpov15 рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдЫреЛрдЯрд╛ рдЙрджрд╛рд╣рд░рдг рд╣реИ рдЬреЛ рдЗрд╕реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ: http://code.runnable.com/VYhGbVhereIYdbst/update-validation-enum-for-mongoose-and-databases
рдЦреИрд░ рдПрдХ рдореБрджреНрджрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдКрдкрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдЙрджрд╛рд╣рд░рдг рдиреЗрд╡рд▓рд╛ рдХреЗ рдкреНрд░рд╛рдЧреИрддрд┐рд╣рд╛рд╕рд┐рдХ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИ:
root<strong i="6">@runnable</strong>:~# head node_modules/mongoose/package.json
{
"name": "mongoose",
"description": "Elegant MongoDB object modeling for Node.js",
"version": "3.6.14",
"author": {
"name": "Guillermo Rauch",
"email": "[email protected]"
},
"keywords": [
"mongodb",
4.x рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ рдФрд░ рдЗрд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдХреНрдпрд╛ рдЖрдк рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рд╣реИрдВ рдХрд┐ рдпрд╣ рдПрдХ рдПрдирдо рдФрд░ findOneAndUpdate рд╡рд┐рдзрд┐ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ?
рдиреЗрд╡рд▓рд╛ 4.2.6 рдкрд░ рдпрд╣ рд╡рд┐рдлрд▓ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ, рдореИрдВ рдПрдХ рдЦрд░рд╛рдм рдореВрд▓реНрдп рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред
рд╕реНрдХреАрдорд╛:
var UserSchema = new Schema({
first_name: {
type: String,
required: true,
},
last_name: {
type: String,
required: true,
},
email: {
type: String,
unique: true,
required: true,
},
embededData: [{
type: {
type: String,
enum: ['value1', 'value2', 'value3']
required: true
}
}]
}, { strict: true });
FindOneAndUpdate рд╡рд┐рдзрд┐:
UserModel.findOneAndUpdate(
{_id: uid},
{$push: {embededData: data}},
{ runValidators: true }, function(err) {
});
рддрдм рдореИрдВ embededData.type = 'Panda';
рдзрдХреНрдХрд╛ рджреЗ рд╕рдХрддрд╛ рд╣реВрдВ
рдЕрджреНрдпрддрди рд╕рддреНрдпрд╛рдкрдирдХрд░реНрддрд╛ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдФрд░ #2933 рджреЗрдЦреЗрдВ - рдЕрджреНрдпрддрди рд╕рддреНрдпрд╛рдкрдирдХрд░реНрддрд╛ $push
рдкрд░ рдирд╣реАрдВ рдЪрд▓рддреЗ рд╣реИрдВ, рдХреЗрд╡рд▓ $set
рдФрд░ $unset
рдкрд░ рдЪрд▓рддреЗ рд╣реИрдВ
+1
рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдореИрдВ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВ, рдпрд╣ рдЕрднреА рднреА рдЙрд╕ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдЖрдк рдПрдХ рд╕рд░рдгреА рд╡рд╛рд▓реЗ рдлрд╝реАрд▓реНрдб рдкрд░ рдПрдХ рдХрд╕реНрдЯрдо рд╕рддреНрдпрд╛рдкрдирдХрд░реНрддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣ рдХреЛрдб рд╕реНрдирд┐рдкреЗрдЯ:
var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/myTestDB');
var db = mongoose.connection;
db.on('error', function (err) {
console.log('connection error', err);
});
db.once('open', function () {
console.log('connected.');
});
var Schema = mongoose.Schema;
var userSchema = new Schema({
_id : String,
name : {
type: [String],
validate: {
validator: function (str) {
return str.length > 1
}
},
}
});
var User = mongoose.model('User', userSchema);
User.findOneAndUpdate({"name": ["John", "Doe"]}, {
$setOnInsert: {
name: ["John"],
},
}, { runValidators: true, upsert: true, new: true }, function (err, data) {
if (err) {
return console.log(err);
} else {
// console.log(data.validateSync())
return console.log('Updated', data);
}
});
рдЖрдкрдХреЛ рдмрд┐рдирд╛ рдХрд┐рд╕реА рддреНрд░реБрдЯрд┐ рдХреЗ ["рдЬреЙрди"] рдХрд╛ name
рдлрд╝реАрд▓реНрдб рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛, рднрд▓реЗ рд╣реА рдореИрдВрдиреЗ рд╢рд╛рдорд┐рд▓ рдХрд╕реНрдЯрдо рд╕рддреНрдпрд╛рдкрдирдХрд░реНрддрд╛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ 1 рд╕реЗ рдХрдо рдпрд╛ рдЙрд╕рдХреЗ рдмрд░рд╛рдмрд░ рд▓рдВрдмрд╛рдИ рдХреЗ рдХрд┐рд╕реА рднреА рдирд╛рдо рд╕рд░рдгреА рдХреЛ рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдХрд░рддрд╛ рд╣реИред рд╕рддреНрдпрд╛рдкрдирдХрд░реНрддрд╛ рд╕реНрд╡рдпрдВ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдЗрд╕ рддрдереНрдп рд╕реЗ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдпрджрд┐ рдЖрдк рд▓рд╛рдЗрди console.log(data.validateSync())
рдЕрд╕рдореНрдмрджреНрдз рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рд╕реЗ рд╕рддреНрдпрд╛рдкрди рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрдЪрд┐рдд рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рд▓реМрдЯрд╛рдПрдЧрд╛ред рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рд╕рддреНрдпрд╛рдкрди findOneAndUpdate()
рдХреЙрд▓ рдХреЗ рднреАрддрд░ рдирд╣реАрдВ рд╣реЛ рд░рд╣рд╛ рд╣реИ, рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд╡рдЬреВрдж рдХрд┐ рдореИрдВ runValidators=true
рд╡рд┐рдХрд▓реНрдк рд╢рд╛рдорд┐рд▓ рдХрд░рддрд╛ рд╣реВрдВред
рдПрдХ рдмрдЧ рдХреА рддрд░рд╣ рд▓рдЧ рд░рд╣рд╛ рд╣реИ, рдХреНрдпрд╛ рдЖрдк рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рдореБрджреНрджрд╛ рдЦреЛрд▓ рд╕рдХрддреЗ рд╣реИрдВ?
рд╣рд╛рдВ, рдЦреЛрд▓рд╛ рдЧрдпрд╛ https://github.com/Automattic/mongoose/issues/4039
рдзрдиреНрдпрд╡рд╛рдж
рдХреНрдпрд╛ рдЙрдкрд░реЛрдХреНрдд рд╕рдорд╕реНрдпрд╛ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╕рдорд╛рдзрд╛рди рдЙрдкрд▓рдмреНрдз рд╣реИ? @vkarpov15
@ Saravanan90 рдХреГрдкрдпрд╛ рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╕рд╛рд░реНрдердХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдмрдВрдж рдореБрджреНрджреЛрдВ рдкрд░ рдЯрд┐рдкреНрдкрдгреА рдХрд░рдирд╛ рдмрдВрдж рдХрд░реЗрдВред рдХреЛрдб рдирдореВрдиреЗ рдХреЗ рд╕рд╛рде рдПрдХ рдЕрд▓рдЧ рдореБрджреНрджрд╛ рдЦреЛрд▓реЗрдВред
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
+1
рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдирдЬрд╛рди рд╣реИ рдХрд┐ рдЕрджреНрдпрддрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рд╣реЛрдЧрд╛: рдбрд┐рдлрд╝реЙрд▓реНрдЯ, рд╕реЗрдЯрд░реНрд╕, рд╕рддреНрдпрд╛рдкрди рдФрд░ рдПрдирдоред рдпрджрд┐ рдХреЛрд░ рдСрдкрд░реЗрд╢рдВрд╕ рдЗрд╕рдХрд╛ рдкрд╛рд▓рди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рд╕реНрдХреАрдорд╛ рдХрд╛ рдХреНрдпрд╛ рдЙрдкрдпреЛрдЧ рд╣реЛрддрд╛ рд╣реИред