


рд╣реИрд▓реЛ, рдЖрдо-рд▓рд┐рд╕реНрдк рдХреЗ рд╕рднреА рдкреНрд░реЗрдореАред
рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рдореИрдВ рдЖрдкрдХреЛ
mongo-cl-driver рдирд╛рдордХ
mongo рдСрдмреНрдЬреЗрдХреНрдЯ DBMS рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдо-рд▓рд┐рд╕реНрдк рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рдЕрдкрдиреЗ рдЕрдиреБрднрд╡ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрддрд╛рдКрдВрдЧрд╛ред
рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдкрдврд╝рд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ рдХрд┐ рдореЛрдВрдЧреЛ-рдбреАрдмреА рдХрд┐рддрдирд╛ рддреЗрдЬрд╝ рд╣реИ, рд╕реНрдХреЗрд▓реЗрдмрд▓ рдФрд░ рдХреВрд▓ рд╣реИ, рдФрд░ рдЗрд╕ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рде C ++ рдореЗрдВ рдмрд╛рддрдЪреАрдд рдХрд░рдирд╛ рдПрдХ рджреВрд░ рдФрд░ рдмрд╣реБрдд рдХрдо рдЕрдиреБрднрд╡ рд╣реИ, рдореИрдВрдиреЗ рдЗрд╕ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдЖрдо-рд▓рд┐рд╕реНрдк рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП рдЕрдкрдиреЗ рд╡реЗрдм-рдУрд░рд┐рдПрдВрдЯреЗрдб рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдЖрдЬрд╝рдорд╛рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐, DBMS рдХреА рд╕рд╣реА рдкрд╕рдВрдж рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рд╕рдВрджреЗрд╣ рд╣реИ, рдореИрдВ рдЕрдкрдиреЗ рдЕрдиреБрднрд╡ рдХреЛ рд╕рдлрд▓ рдХрд╣ рд╕рдХрддрд╛ рд╣реВрдВ, рдХреНрдпреЛрдВрдХрд┐ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрдо рд╕реЗ рдХрдо рдХрд╛рдо рдХрд░рддреА рд╣реИред
рдЬреЛ рдХреЛрдИ рднреА mongo DBMS рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реИ, рд╡рд╣ рдПрдХ рддрд░рд╣ рд╕реЗ рдпрд╛ cl-mongo рдХреЗ рд▓рд┐рдВрдХ рдХреЗ рд▓рд┐рдП рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдПрдХ рдФрд░ рдареЛрдХрд░ рдЦрд╛рддрд╛ рд╣реИ - рдЖрдо-рд▓рд┐рд╕реНрдк рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП mongo рдбреЗрдЯрд╛рдмреЗрд╕ рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХрд╛ рдкрд╣рд▓рд╛ рдкреНрд░рджрд╛рддрд╛ред рдореЗрд░реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ cl-mongo рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдореБрдЭреЗ рдбреЗрдЯрд╛ рдХреЛ рдЬреЛрдВрд╕ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде рдХрдИ рд╕рдорд╕реНрдпрд╛рдПрдВ рдЖрдИрдВ, рдЬреЛ рддрдм рд╢реБрд░реВ рд╣реБрдИ рдЬрдм DBMS-> рдХреЙрдорди-рд▓рд┐рд╕реНрдк-рд╕рд░реНрд╡рд░-> рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ-рдХреНрд▓рд╛рдЗрдВрдЯ-рдЪреЗрди рдХреЗ рд╕рд╛рде рдХреНрд╡реЗрд░реА рдкрд░рд┐рдгрд╛рдореЛрдВ рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рдЧрдпрд╛ред рд╡реИрд╕реЗ, рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ / рдбрд┐рдХреЛрдбрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдореЗрд░реЗ рдкрд╛рд╕ рдЬреНрдЮрд╛рдд рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИрдВ:
1)
рдпрд╛рд╕рди2)
cl-jsonрдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЖрдо-рд▓рд┐рд╕реНрдк рдкрд░ mongo DBMS рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП mongo-cl-driver рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдХреБрдЫ рдЙрджрд╛рд╣рд░рдг рд╣реИрдВред рдпрджрд┐ рдЙрджрд╛рд╣рд░рдг рдкрд╛рдардХ рдХреЛ рдЕрд╕реНрдкрд╖реНрдЯ рд▓рдЧрддреЗ рд╣реИрдВ, рд╕рдВрджрд░реНрдн рд╕реЗ рдмрд╛рд╣рд░ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ, рддреЛ рд╕реБрд▓рдн рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреЗ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦрдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рд╣реИ
рд╕реНрд░реЛрдд рдХреЛрдб рдХреЛрдб рдХреЗ рд╕рдмрд╕реЗ рдореВрд▓реНрдпрд╡рд╛рди рдЯреБрдХрдбрд╝реЗ webserver.lisp рдФрд░ competitions.lisp рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ рд╣реИрдВ
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рд╕реАрдВрдЧреЛрдВ рджреНрд╡рд╛рд░рд╛ рдЗрд╕ рдмреИрд▓ рдХреЛ рд▓реЗрддреЗ рд╣реИрдВ:
рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рдФрд░ рдПрдХреНрд╕реЗрд╕ рдХрд░рдирд╛ рджреЛ рдЪрд░рдгреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ: рдбреЗрдЯрд╛рдмреЗрд╕ рдХреНрд▓рд╛рд╕ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдФрд░ рд╕рдВрдЧреНрд░рд╣ рд╡рд░реНрдЧ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдирд╛ред рдЖрдЧреЗ - рд╕рдВрдЧреНрд░рд╣ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред
CLOS рдбреЗрдЯрд╛рдмреЗрд╕ рдХреНрд▓рд╛рд╕ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдПрдВред рдЖрдк рдкреБрд╕реНрддрдХ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ-рдЖрдо-рд▓рд┐рд╕реНрдк рдХреЗ рдЕрдиреБрд╡рд╛рдж рдореЗрдВ рдЖрдо-рд▓рд┐рд╕реНрдк рдореЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯ-рдУрд░рд┐рдПрдВрдЯреЗрдб рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдирд┐рд░реНрдорд╛рддрд╛ рд╣реЛрд╕реНрдЯ, рдкреЛрд░реНрдЯ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб рдХреЛ рднреА рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЗ рд╕рдХрддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рд▓реЗрдЦрдХ рдиреЗ рдХреЗрд╡рд▓ рдкрд╣рд▓реЗ рджреЛ рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдерд╛ред
рд╕реНрдХреАрдорд╛ рдирд╛рдордХ рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдирд╛:
(defparameter *db-instance* (make-instance 'mongo:database :name "ski73"))
рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдВрдЧреНрд░рд╣ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд╕рдВрдЧреНрд░рд╣ рд╡рд░реНрдЧ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдирд╛ рд╣реЛрдЧрд╛:
(defparameter *competitions* (mongo:collection *db-instance* "competitions"))
рдЕрдм рд╣рдо рдЗрд╕реЗ рдЕрдкрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
рдмреНрдпрд╛рдЬ рдХреА рдЬрд╛рдирдХрд╛рд░реА рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдореЛрдВрдЧреЛ-рдХреНрд▓-рдбреНрд░рд╛рдЗрд╡рд░ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: рдЦреЛрдЬ-рдПрдХ рдпрд╛ рдЦреЛрдЬ-рд╕реВрдЪреАред рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рд╣реИ рдХрд┐ рдкреНрд░рддрд┐рдпреЛрдЧрд┐рддрд╛рдУрдВ рдХреЗ рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ рдирд╛рдо рдФрд░ рддрд┐рдерд┐ рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореЛрдВрдЧреЛ рдХрдВрд╕реЛрд▓ рдореЗрдВ рдЕрдиреБрд░реЛрдз рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ:
db.competitions.find({}, {title: 1, date: 1});
рд╕рднреА рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рдмрд┐рдирд╛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
db.competitions.find();
рдЦреЛрдЬ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдкрд╣рд▓реЗ рд╕рджрд╕реНрдп рдХреЗ рд░реВрдк рдореЗрдВ, рдЪрдпрди рдХреА рд╢рд░реНрддреЛрдВ рдХреЛ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕реА рддрд░рд╣, рд╣рдо рдПрд╕рдХреНрдпреВрдПрд▓ рдХреНрд╡реЗрд░реА рдореЗрдВ рдХреНрд▓реЙрдЬрд╝ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВред рджреВрд╕рд░рд╛ рдкреИрд░рд╛рдореАрдЯрд░ рд░рд┐рдЯрд░реНрди рд╡реИрд▓реНрдпреВрдЬ рдХрд╛ рдПрдХ рдлрд┐рд▓реНрдЯрд░ рд╣реИ - рд╣рдо рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдмреНрдпрд╛рдЬ рдХреЗ рд▓рдХреНрд╖реНрдп рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЗ рдирд╛рдо рджрд░реНрд╢рд╛рддреЗ рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ 1s рдХреЗ рд╕рд╛рде рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП, рдХреГрдкрдпрд╛ рд╕рдВрдкрд░реНрдХ рдХрд░реЗрдВ
рдЖрдо рдкреНрд░рд╢реНрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рд▓реЗрдЦрди ред
рдореВрдВрдЧ-рдХреНрд▓-рдбреНрд░рд╛рдЗрд╡рд░ рдореЗрдВ, рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЦреЛрдЬ-рд╕реВрдЪреА рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдПрдХ-рдПрдХ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рди рддреЛ рд╡рд┐рдзрд┐ (рд▓реЗрдЦрдХ рдХреЗ рд╡реНрдпрдХреНрддрд┐рдкрд░рдХ рдЕрдиреБрднрд╡ рд╕реЗ) рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХреНрд╡реЗрд░реА рдФрд░ рдлрд╝рд┐рд▓реНрдЯрд░ рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░ рд╕рдХрддреА рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдкреНрд░рддрд┐рдпреЛрдЧрд┐рддрд╛рдУрдВ рдХреЗ рд╕рдВрдЧреНрд░рд╣ рд╕реЗ рдкреНрд░рддрд┐рдпреЛрдЧрд┐рддрд╛рдУрдВ рдХреА рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИред
(find-list *competitions* :query (son) :fields (son "title" 1 "date" 1))
рдЪрдпрди рд╕реЗ рдХрд┐рд╕реА рднреА рдлрд╝рд┐рд▓реНрдЯрд░ рдФрд░ рдЦреЛрдЬ рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреЛ рдмрд╛рд╣рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдкреИрд░рд╛рдореАрдЯрд░ рдорд╛рдиреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ: рдХреНрд╡реЗрд░реА рдФрд░: рдлрд╝реАрд▓реНрдбреНрд╕ рдмрд┐рдирд╛ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рдмреЗрдЯреЗ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╣реИрдВред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕ рддрд░рд╣:
(find-list *competitions* :query (son) :fields (son))
рдХрд┐рд╕реА рдПрдХрд▓ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП, рдлрд╝рдВрдб-рд╡рди рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдкрд╣рд▓реЗ (рдлрд╝рд┐рд▓реНрдЯрд░) рдФрд░ рджреВрд╕рд░реЗ (рдореБрдЦреМрдЯрд╛) рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ, рдЗрд╕реЗ рднреА рдЗрд╕реЗ рдкрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЕрдЧрд░ рдХреЛрдИ рдЕрдиреБрд░реЛрдз рд╢рд░реНрддреЛрдВ рдФрд░ рдлрд╝рд┐рд▓реНрдЯрд░ рдХреЗ рдмрд┐рдирд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдмреЗрдЯреЗ рдХреЛ рдЦрд╛рд▓реА рдХреЙрд▓
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
(find-one *coll-instance* (son) (son))
рдмреЗрдЯрд╛ рдХреНрдпрд╛ рд╣реИ?
рд╕рд╛рдорд╛рдиреНрдп рд▓рд┐рд╕реНрдк рдореЗрдВ рдХреНрд╡реЗрд░реА рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрд╕реА рддрд░рд╣ рд╕реЗ рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдорд╛рдирдЧреЛ рдХрдВрд╕реЛрд▓ рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЖрдкрдХреЛ рдХреБрдВрдЬреА-рдорд╛рди рдорд╛рдиреЛрдВ рдХреЗ рдПрдХ рд╕реЗрдЯ рдХреЗ рд╕рд╛рде рдЗрд╕рдореЗрдВ рджреЛ рд╕рдВрд░рдЪрдирд╛рдПрдВ рдкрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рд╡реИрд╕реЗ, рдПрдХ рд╣реА cl-mongo рдореЗрдВ рдПрдХ рд╕рдорд╛рди рдХрд╛рд░реНрдп рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ kv (рдХреА-рд╡реИрд▓реНрдпреВ) рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдореБрдЭреЗ рдареАрдХ рд╕реЗ рдпрд╛рдж рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдЕрдиреНрдп рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдХреБрдЫ рдЕрд╕реБрд╡рд┐рдзрд╛рдПрдБ рднреА рд╣реИрдВред
рдореЛрдВрдЧреЛ-рдХреНрд▓-рдбреНрд░рд╛рдЗрд╡рд░ рдореЗрдВ, рдПрдХ рдмреЗрдЯрд╛ рдлрд╝рдВрдХреНрд╢рди рд╣реИред
рдпрд╣рд╛рдВ рдЧреИрд░-рд░рд┐рдХреНрдд рдХреНрд╡реЗрд░реА рдФрд░ рдлрд╝реАрд▓реНрдб рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд╕рд╛рде рдХреНрд╡реЗрд░реА рдмрдирд╛рдиреЗ рдХрд╛ рдПрдХ рдСрди-рдж-рдЧреЛ рдЙрджрд╛рд╣рд░рдг рд╣реИ:
(find-list *coll-instance* :query (son "name" "Ivan" "surname" "Ivanov") :fields (son "name" 1 "surname" 1 "address" 1 "telephone"))
рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдХреБрдЫ рд╕реНрдерд╛рдиреЛрдВ рдореЗрдВ, рд╡рд┐рд╖рдо рдорд╛рди рдкрд░ рд▓рдХреНрд╖реНрдп рдХреБрдВрдЬреА (рд╕рджрд╕реНрдп рдирд╛рдо) рд╣реЛрддреЗ рд╣реИрдВред
рдПрдХ рдЦреЗрд▓ рдШрдЯрдирд╛ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╡рд░реНрдЧ рд╕реЗ рдХрд┐рд╕реА рд╡рд╕реНрддреБ рдХрд╛ рдореБрдЦреНрдп рдореВрд▓реНрдп рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рдзрд┐ рдХрд╛ рдПрдХ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╣реИред
(defmethod mongo-doc ((c-instance competition)) (son "title" (title c-instance) "date" (date c-instance) "begin-time" (begin-time c-instance) "end-time" (end-time c-instance) "captions" (captions c-instance) ))
рдЖрдИрдбреА рджреНрд╡рд╛рд░рд╛ рдЦреЛрдЬреЗрдВ
рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд░реНрд╡рд░ http рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рдПрдХ рд╕рдВрдмрдВрдзрд┐рдд рдХрд╛рд░реНрдп рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдкрд┐рдЫрд▓реЗ рдЕрдиреБрд░реЛрдз рджреНрд╡рд╛рд░рд╛ - рдкрд╣рд▓реЗ рдкреНрд░рд╛рдкреНрдд рдЖрдИрдбреА рдХреЗ рд╕рд░реНрд╡рд░ рдкрд░ рд╕реНрдерд╛рдирд╛рдВрддрд░рдг рдерд╛ред рд╢рд╛рдпрдж рджреГрд╖реНрдЯрд┐рдХреЛрдг рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рд╣реА рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рдХрд┐ рдЖрдИрдбреА рдХреЛ рдПрдХ рд╣реА рдЯреБрдХрдбрд╝реЗ рдореЗрдВ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрджрд╛рд╣рд░рдг рд╕реЗ рд╕реНрдерд┐рддрд┐ рдХреЛ рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдорд┐рд▓реЗрдЧреАред
рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ рдХрд┐ рдкреНрд░рддрд┐рдпреЛрдЧрд┐рддрд╛ рдХреА рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рдкрд╛рд╕ рджреМрдбрд╝ (рд░рд╛рдЙрдВрдб) рдХреА рдиреЗрд╕реНрдЯреЗрдб рд╕реВрдЪреА рд╣реЛрддреА рд╣реИ
рдпрд╣ рдЗрд╕ рддрд░рд╣ рд╕реЗ рд╣реИ рдХрд┐ рдкреНрд░рддрд┐рдпреЛрдЧрд┐рддрд╛рдУрдВ рдХреА рд╕реВрдЪреА рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рдкрд╛рд╕ рдЬреЛрдВрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛рдИ рдЧрдИ рд╣реИред рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ hunchentoot рд╕рд░реНрд╡рд░ рдХреЗ http рдкреНрд░рдмрдВрдзрдХ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдмрдирд╛рдИ рдЧрдИ рд╣реИред рдкрд░рд┐рднрд╛рд╖рд┐рдд- url-fn рдПрдХ рдореИрдХреНрд░реЛ рд╣реИ рдЬреЛ рдкреНрд░рддрд┐рдпреЛрдЧрд┐рддрд╛рдУрдВ-рд╕реВрдЪреА рдЕрдиреБрд░реЛрдз рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реИрдВрдбрд▓рд░ рдлрд╝рдВрдХреНрд╢рди рдмрдирд╛рддрд╛ рд╣реИ рдФрд░ рдкрдВрдЬреАрдХреГрдд рдХрд░рддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рд╕реНрдХреА73.ru : 4242 / рдкреНрд░рддрд┐рд╕реНрдкрд░реНрдзрд╛-рд╕реВрдЪреАред рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ, рд╣реИ рдирд╛?
рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╣рдо рдкреНрд░рддрд┐рдпреЛрдЧрд┐рддрд╛рдУрдВ рдХреА рд╕реВрдЪреА рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдиреБрд░реЛрдз рд╣реИрдВрдбрд▓рд░ рдкрдВрдЬреАрдХреГрдд рдХрд░рддреЗ рд╣реИрдВред рд╣рдо рдШрдЯрдирд╛ рдХреЗ рдирд╛рдо рдФрд░ рддрд┐рдерд┐ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВред рдЦреЛрдЬ-рд╕реВрдЪреА рд╣рдореЗрд╢рд╛ рдкреНрд░рддреНрдпреЗрдХ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЗ рд▓рд┐рдП рд╡рд╛рдкрд╕ рдЖрдПрдЧреА: 12-рдмрд╛рдЗрдЯ рдЖрдИрдбреА-рд╢реЗрдХрдиреАрдХ рдХреЛ рдлрд╝реАрд▓реНрдб рдлрд╝реАрд▓реНрдб рдкреИрд░рд╛рдореАрдЯрд░ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдлрд╝реАрд▓реНрдбреНрд╕ рдХреЗ рд╕рд╛рде рдорд┐рд▓рд╛ред рдХреНрд▓рд╛рдЗрдВрдЯ рдХреА рддрд░рдл, рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ 12 рдирдВрдмрд░ s рдХреА рдПрдХ рд╕рд░рдгреА рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕рд░реНрд╡рд░ рдкрд░ рдПрдХ рдФрд░ рдЕрдиреБрд░реЛрдз рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдПрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ рдХреНрд░рдордмрджреНрдз рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬреЛ рдПрдерд▓реАрдЯреЛрдВ рдХреЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рд╕рд╛рде рджреМрдбрд╝ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд╕рд╛рде рдПрдХ рдЕрдзрд┐рдХ рдХреИрдкреЗрд╕рд┐рдЯрд┐рд╡ рд╕рдВрд░рдЪрдирд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдЧрд╛ред
MongoId рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреА рдПрдХ рд╕рд░рдгреА рдХреЛ 12-рддрддреНрд╡ рдордзреНрдп рд╕рд░рдгреА рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдмрд╛рдЗрдЯреНрд╕ рд╕реЗ рдмрдирд╛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдирд╛ рд╣реИред
function mongoId(mid) { var strId = new String(); var plusByCode = function(el, index, arr) { return strId += String.fromCharCode(el); }; mid.raw.forEach(plusByCode); return strId; }
MongoId рдХреЗ рд╕рд╛рде рдкреНрд░рд╛рдкреНрдд рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ POST рдЕрдиреБрд░реЛрдз рдореЗрдВ рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИред рдФрд░, рдЖрдЧреЗ, рд╕рд░реНрд╡рд░ рд╕рд╛рдЗрдб рдкрд░, рдЗрд╕ рдЖрдИрдбреА-рд╢рдирд┐рдХ рдкрд░ рдореЛрдВрдЧреЛ-рдбреАрдмреА рд╕реЗ рдЬрд╛рдирдХрд╛рд░реА рдорд╛рдВрдЧреА рдЬрд╛рддреА рд╣реИред рдпрд╣ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
; (define-url-fn (competition-info) (let ((id (post-parameter "id")) ) (str (encode-json-to-string (find-one *competitions* (son "_id" (make-instance 'object-id :raw (flexi-streams:string-to-octets id))) (son "rounds" 1 "captions" 1 "title" 1))) )))
DBMS рдХреЛ рдПрдХ рдХреНрд╡реЗрд░реА рдмрдирд╛рдиреЗ рдореЗрдВ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕реНрдерд╛рди рдПрдХ POST рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдХреНрд▓рд╛рдЗрдВрдЯ рд╕реЗ рдкреНрд░реЗрд╖рд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕реЗ 12-рддрддреНрд╡ рд╡реЗрдХреНрдЯрд░ рдХреА рд╕рдВрдЦреНрдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдХрд╛рд░реНрдп рд╣реИ - рдлреНрд▓реЗрдХреНрд╕реА-рд╕реНрдЯреНрд░реАрдо: string-to-octetsред рдкрд░рд┐рдгрд╛рдореА рд╡реЗрдХреНрдЯрд░ рдХреЛ рдСрдмреНрдЬреЗрдХреНрдЯ-рдЖрдИрдбреА рдХреНрд▓рд╛рд╕ рдХреЗ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдореЗрдВ рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИред
рдЦреИрд░, рдирд┐рд╖реНрдХрд░реНрд╖ рдореЗрдВ, рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рднреА рдЬреЛ рдХреЛрд╢рд┐рд╢ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рд▓реЗрдЦрдХ рдХреА рджрд┐рд╢рд╛ рдореЗрдВ рдХрдо рдЕрднрд┐рд╢рд╛рдк рд╣реЛрдВ, рдЖрдо-рд▓рд┐рд╕реНрдк рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдореЛрдВрдЧреЛ-рдХреНрд▓-рдбреНрд░рд╛рдЗрд╡рд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдмрд╣реБрдд рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╡рд┐рд╡рд░рдг рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ, sbcl рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдореЛрдВрдЧреЛ-рд╕реАрдПрд▓-рдбреНрд░рд╛рдЗрд╡рд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╕рдордп, рдиреМрд╕рд┐рдЦрд┐рдпрд╛ рд▓рд┐рд╕реНрдк рдкреНрд░реЛрдЧреНрд░рд╛рдорд░, рдЬрд┐рдиреНрд╣реЗрдВ рд▓реЗрдЦрдХ рд╕реНрд╡рдпрдВ рд╕рдВрдмрдВрдзрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдХреЛ рд╕рдВрднрд╡рддрдГ рдЕрдШреБрд▓рдирд╢реАрд▓ рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реЛ рд╕рдХрддреА рд╣реИрдВред
рдЗрд╕ рд╕рд░рд▓ рдордВрддреНрд░ рдХреЗ рд╕рд╛рде рдореЛрдВрдЧреЛ-рд╕реАрдПрд▓-рдбреНрд░рд╛рдЗрд╡рд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИ:
(ql: рдХреНрд╡рд┐рдХрд▓реЛрдб "рдореЛрдВрдЧреЛ-рд╕реАрдПрд▓-рдбреНрд░рд╛рдЗрд╡рд░")
рдЖрдкрдХреЗ рд▓рд┐рд╕реНрдк рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ, рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░, рдХреНрд╡рд┐рдХ-рд▓рд┐рд╕реНрдк, рд▓рд┐рд╕реНрдк рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдФрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рдЖрдк рдЗрд╕реЗ рдбрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдХреИрд╕реЗ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ - www.quicklisp.org/beta
рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ, рд╕реНрдерд╛рдкрдирд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рдмреАрдЪ рдореЗрдВ, рдПрдХ рдЕрдкрд╡рд╛рдж (рдкреБрдирд░рд╛рд░рдВрдн) рдкреЙрдк рдЬрд╛рдПрдЧрд╛, рдПрдХ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдПрдХ рдЕрдирд╕реБрд▓рдЭреЗ рдирд┐рд░реНрднрд░рддрд╛ рд╣реИ - рд╕реАрдПрд▓-рдКрдВрдЯ-рдХреЗрд╕ред
рд╣рдо рдЗрд╕реЗ рд▓реЗрдЦрдХ рдХреЗ mongo-cl-Driver рд╕реЗ рд▓реЗрддреЗ рд╣реИрдВ рдФрд░ рд╡рд┐рдХреА рд╕реЗрдХреНрд╢рди рдореЗрдВ рдЕрджреНрднреБрдд рд╕рд╛рдЗрдЯ lisper.ru (рдПрдХ рд╕реБрдВрджрд░ рдЫрд┐рдкрдХрд▓реА рдХреЗ рд╕рд╛рде) рдкрд░ рд╡рд░реНрдгрд┐рдд рддреАрди рддрд░реАрдХреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВ
рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдХреБрдЫ рднреА рдпрд╛рдж рдирд╣реАрдВ рд╣реИред рдореИрдВ рдХреЗрд╡рд▓ рдпрд╣ рдЬреЛрдбрд╝реВрдВрдЧрд╛ рдХрд┐ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдПрдерд▓реАрдЯреЛрдВ рдФрд░ рд╕реНрдХреАрдпрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рд▓реЗрдЦрдХ рдХреЗ рд╕рдВрд╕рд╛рдзрди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд╕реНрд░реЛрдд рдЙрдкрд▓рдмреНрдз рд╣реИрдВ
рд╕рдВрд╕рд╛рдзрди рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рджреМрд░рд╛рди рдХреБрдЫ рдпреБрдХреНрддрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рд▓реЗрдЦрдХ рдореЛрдВрдЧреЛ-рд╕реАрдПрд▓-рдЪрд╛рд▓рдХ рдЕрднрд┐рд▓реЗрдЦрд╛рдЧрд╛рд░ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рдзрдиреНрдпрд╡рд╛рджред рдФрд░ рд╢реБрднрдХрд╛рдордирд╛рдПрдБ, рджреЛрд╕реНрддреЛрдВ!