PostgreSQL DBMS рд╡рд░ рдЖрдзрд╛рд░рд┐рдд FerretDB, MongoDB рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрдЪреЗ рдкрд╣рд┐рд▓реЗ рд╕реНрдерд┐рд░ рдкреНрд░рдХрд╛рд╢рди

рдлреЗрд░реЗрдЯрдбреАрдмреА 1.0 рдкреНрд░рдХрд▓реНрдкрд╛рдЪреЗ рдкреНрд░рдХрд╛рд╢рди рдкреНрд░рдХрд╛рд╢рд┐рдд рдХреЗрд▓реЗ рдЧреЗрд▓реЗ рдЖрд╣реЗ, рдЬреЗ рддреБрдореНрд╣рд╛рд▓рд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЛрдбрдордзреНрдпреЗ рдмрджрд▓ рди рдХрд░рддрд╛ рджрд╕реНрддрдРрд╡рдЬ-рджреЗрдгрд╛рд░рдВ DBMS MongoDB PostgreSQL рд╕рд╣ рдмрджрд▓рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЗ. FerretDB рд╣реЗ рдкреНрд░реЙрдХреНрд╕реА рд╕рд░реНрд╡реНрд╣рд░ рдореНрд╣рдгреВрди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХреЗрд▓реЗ рдЖрд╣реЗ рдЬреЗ рдореЛрдВрдЧреЛрдбреАрдмреА рд╡рд░реАрд▓ рдХреЙрд▓реНрд╕рдЪреЗ SQL рдХреНрд╡реЗрд░реА рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдПрд╕рдХреНрдпреВрдПрд▓рдордзреНрдпреЗ рднрд╛рд╖рд╛рдВрддрд░ рдХрд░рддреЗ, рдЬреЗ рддреБрдореНрд╣рд╛рд▓рд╛ рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдПрд╕рдХреНрдпреВрдПрд▓ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕реНрдЯреЛрд░реЗрдЬ рдореНрд╣рдгреВрди рд╡рд╛рдкрд░рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЗ. рдЖрд╡реГрддреНрддреА 1.0 рд╣реЗ рд╕рд╛рдорд╛рдиреНрдп рд╡рд╛рдкрд░рд╛рд╕рд╛рдареА рддрдпрд╛рд░ рдЕрд╕рд▓реЗрд▓реЗ рдкрд╣рд┐рд▓реЗ рд╕реНрдерд┐рд░ рдкреНрд░рдХрд╛рд╢рди рдореНрд╣рдгреВрди рдЪрд┐рдиреНрд╣рд╛рдВрдХрд┐рдд рдХреЗрд▓реЗ рдЖрд╣реЗ. рдХреЛрдб Go рдордзреНрдпреЗ рд▓рд┐рд╣рд┐рд▓реЗрд▓рд╛ рдЖрд╣реЗ рдЖрдгрд┐ Apache 2.0 рд▓рд╛рдпрд╕рдиреНрд╕ рдЕрдВрддрд░реНрдЧрдд рд╡рд┐рддрд░рд┐рдд рдХреЗрд▓рд╛ рдЖрд╣реЗ.

FerretDB рд╕рд╛рдареА рдореБрдЦреНрдп рд▓рдХреНрд╖реНрдпрд┐рдд рдкреНрд░реЗрдХреНрд╖рдХ рд╣реЗ рд╡рд╛рдкрд░рдХрд░реНрддреЗ рдЖрд╣реЗрдд рдЬреЗ рддреНрдпрд╛рдВрдЪреНрдпрд╛ рдНрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕рдордзреНрдпреЗ MongoDB рдкреНрд░рдЧрдд рд╡реИрд╢рд┐рд╖реНрдЯреНрдпреЗ рд╡рд╛рдкрд░рдд рдирд╛рд╣реАрдд, рдкрд░рдВрддреБ рдкреВрд░реНрдгрдкрдгреЗ рдореБрдХреНрдд рд╕реЙрдлреНрдЯрд╡реЗрдЕрд░ рд╕реНрдЯреЕрдХ рд╡рд╛рдкрд░реВ рдЗрдЪреНрдЫрд┐рдд рдЖрд╣реЗрдд. рд╡рд┐рдХрд╛рд╕рд╛рдЪреНрдпрд╛ рд╕рдзреНрдпрд╛рдЪреНрдпрд╛ рдЯрдкреНрдкреНрдпрд╛рд╡рд░, FerretDB рдард░рд╛рд╡рд┐рдХ рдНрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕рдордзреНрдпреЗ рд╕рд╛рдорд╛рдиреНрдпрддрдГ рд╡рд╛рдкрд░рд▓реНрдпрд╛ рдЬрд╛рдгрд╛рд░реНтАНрдпрд╛ MongoDB рд╡реИрд╢рд┐рд╖реНрдЯреНрдпрд╛рдВрдЪреНрдпрд╛ рдЙрдкрд╕рдВрдЪрд╛рдЪреЗ рд╕рдорд░реНрдерди рдХрд░рддреЗ. AGPLv3 рдкрд░рд╡рд╛рдиреНрдпрд╛рд╡рд░ рдЖрдзрд╛рд░рд┐рдд рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдореЛрдВрдЧреЛрдбреАрдмреАрдЪреНрдпрд╛ рдиреЙрди-рдлреНрд░реА рдПрд╕рдПрд╕рдкреАрдПрд▓ рдкрд░рд╡рд╛рдиреНрдпрд╛рдордзреНрдпреЗ рд╕рдВрдХреНрд░рдордг рдЭрд╛рд▓реНрдпрд╛рдореБрд│реЗ рдлреЗрд░реЗрдЯрдбреАрдмреА рд▓рд╛рдЧреВ рдХрд░рдгреНрдпрд╛рдЪреА рдЧрд░рдЬ рдЙрджреНрднрд╡реВ рд╢рдХрддреЗ, рдкрд░рдВрддреБ рддреЗ рдЙрдШрдбрд▓реЗрд▓реЗ рдирд╛рд╣реА, рдХрд╛рд░рдг рддреНрдпрд╛рдд рдХреЗрд╡рд│ рдПрд╕рдПрд╕рдкреАрдПрд▓ рдкрд░рд╡рд╛рдиреНрдпрд╛рдЕрдВрддрд░реНрдЧрдд рдкреБрд░рд╡рдард╛ рдХрд░рдгреНрдпрд╛рдЪреА рднреЗрджрднрд╛рд╡рдкреВрд░реНрдг рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЖрд╣реЗ. рдНрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛрдб рд╕реНрд╡рддрдГрдЪ, рдкрд░рдВрддреБ рдХреНрд▓рд╛рдЙрдб рд╕реЗрд╡рд╛рдВрдЪреНрдпрд╛ рддрд░рддреВрджреАрдордзреНрдпреЗ рд╕рд╛рдореАрд▓ рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рд╕рд░реНрд╡ рдШрдЯрдХрд╛рдВрдЪреЗ рд╕реНрддреНрд░реЛрдд рдХреЛрдб рджреЗрдЦреАрд▓.

рдореЛрдВрдЧреЛрдбреАрдмреАрдиреЗ рдХреА/рд╡реНрд╣реЕрд▓реНрдпреВ рдбреЗрдЯрд╛рд╡рд░ рдСрдкрд░реЗрдЯ рдХрд░рдгрд╛рд░реНтАНрдпрд╛ рд╡реЗрдЧрд╡рд╛рди рдЖрдгрд┐ рд╕реНрдХреЗрд▓реЗрдмрд▓ рд╕рд┐рд╕реНрдЯреАрдо рдЖрдгрд┐ рд░рд┐рд▓реЗрд╢рдирд▓ рдбреАрдмреАрдПрдордПрд╕ рдпрд╛рдВрдордзреНрдпреЗ рдПрдХ рд╕реНрдерд╛рди рд╡реНрдпрд╛рдкрд▓реЗ рдЖрд╣реЗ рдЬреЗ рдХрд╛рд░реНрдпрд╢реАрд▓ рдЖрдгрд┐ рдХреНрд╡реЗрд░реА рдХрд░рдгреЗ рд╕реЛрдкреЗ рдЖрд╣реЗ. рдореЛрдВрдЧреЛрдбреАрдмреА рдЬреЗрдПрд╕рдУрдПрди рд╕рд╛рд░рдЦреНрдпрд╛ рдлреЙрд░рдореЕрдЯрдордзреНрдпреЗ рджрд╕реНрддрдРрд╡рдЬ рд╕рдВрдЪрдпрд┐рдд рдХрд░рдгреНрдпрд╛рд╕ рд╕рдорд░реНрдерди рджреЗрддреЗ, рдХреНрд╡реЗрд░реА рдирд┐рд░реНрдорд╛рдг рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдмрд░реНтАНрдпрд╛рдкреИрдХреА рд▓рд╡рдЪрд┐рдХ рднрд╛рд╖рд╛ рдЖрд╣реЗ, рд╡рд┐рд╡рд┐рдз рд╕рдВрдЧреНрд░рд╣рд┐рдд рдЧреБрдгрдзрд░реНрдорд╛рдВрд╕рд╛рдареА рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рддрдпрд╛рд░ рдХрд░реВ рд╢рдХрддреЗ, рдореЛрдареНрдпрд╛ рдмрд╛рдпрдирд░реА рд╡рд╕реНрддреВрдВрдЪреЗ рдХрд╛рд░реНрдпрдХреНрд╖рдорддреЗрдиреЗ рд╕рдВрдЪрдпрди рдкреНрд░рджрд╛рди рдХрд░рддреЗ, рдбреЗрдЯрд╛рдмреЗрд╕рдордзреНрдпреЗ рдбреЗрдЯрд╛ рдмрджрд▓рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдгрд┐ рдЬреЛрдбрдгреНрдпрд╛рд╕рд╛рдареА рдСрдкрд░реЗрд╢рдиреНрд╕рдЪреНрдпрд╛ рд▓реЙрдЧрд┐рдВрдЧрд▓рд╛ рд╕рдорд░реНрдерди рджреЗрддреЗ, рдирдореБрдирд╛ рдирдХрд╛рд╢рд╛/рдХрдореА рдХрд░рд╛, рдкреНрд░рддрд┐рдХреГрддреА рдЖрдгрд┐ рдмрд┐рд▓реНрдбрд┐рдВрдЧ рдлреЙрд▓реНрдЯ-рд╕рд╣рд┐рд╖реНрдгреБ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рдирдЪреЗ рд╕рдорд░реНрдерди рдХрд░рддреЗ.

рдлреЗрд░реЗрдЯрдбреАрдмреА 1.0 рдордзреАрд▓ рдмрджрд▓рд╛рдВрдкреИрдХреА:

  • рд╕рдВрдЧреНрд░рд╣рд╛рдордзреНрдпреЗ рдПрдХ рдХрд┐рдВрд╡рд╛ рдЕрдзрд┐рдХ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдгрд┐ рдбреНрд░реЙрдк рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА createIndexes рдЖрдгрд┐ dropIndexes рдХрдорд╛рдВрдб рд▓рд╛рдЧреВ рдХреЗрд▓реЗ.
  • getMore рдХрдорд╛рдВрдб рдХрд░реНрд╕рд░ рдкрд░рдд рдХрд░рдгрд╛рд░реНтАНрдпрд╛ рдХрдорд╛рдВрдбреНрд╕рдЪреНрдпрд╛ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрддреВрди рдорд┐рд│рд╛рд▓реЗрд▓реНрдпрд╛ рдирд┐рдХрд╛рд▓рд╛рдЪрд╛ рдирд╡реАрди рднрд╛рдЧ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд▓рд╛рдЧреВ рдХрд░рдгреНрдпрд╛рдд рдЖрд▓реА рдЖрд╣реЗ, рдЬрд╕реЗ рдХреА рд╢реЛрдзрд╛ рдЖрдгрд┐ рдПрдХрддреНрд░рд┐рдд рдХрд░рд╛.
  • рд╕рдореВрд╣ рдореВрд▓реНрдпрд╛рдВрдЪреНрдпрд╛ рдмреЗрд░рдЬреЗрдЪреА рдЧрдгрдирд╛ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА $sum рдПрдХрддреНрд░реАрдХрд░рдг рдСрдкрд░реЗрдЯрд░рд╕рд╛рдареА рд╕рдорд░реНрдерди рдЬреЛрдбрд▓реЗ.
  • $limit рдЖрдгрд┐ $skip рдСрдкрд░реЗрдЯрд░рд╕рд╛рдареА рд╕рдВрдЦреНрдпрд╛ рдорд░реНрдпрд╛рджрд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдгрд┐ рдПрдХрддреНрд░рд┐рдд рдХрд░рддрд╛рдирд╛ рджрд╕реНрддрдРрд╡рдЬ рд╡рдЧрд│рдгреНрдпрд╛рд╕рд╛рдареА рд╕рдорд░реНрдерди рдЬреЛрдбрд▓реЗ.
  • рдПрдХрддреНрд░рд┐рдд рдХрд░рддрд╛рдирд╛ рджрд╕реНрддрдРрд╡рдЬ рдореЛрдЬрдгреНрдпрд╛рд╕рд╛рдареА $count рдСрдкрд░реЗрдЯрд░рд╕рд╛рдареА рд╕рдорд░реНрдерди рдЬреЛрдбрд▓реЗ.
  • рдЗрдирдХрдорд┐рдВрдЧ рдбреЙрдХреНрдпреБрдореЗрдВрдЯреНрд╕рдордзреНрдпреЗ рдЕреЕрд░реЗ рдлреАрд▓реНрдб рдкрд╛рд░реНрд╕ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдгрд┐ рдкреНрд░рддреНрдпреЗрдХ рдЕреЕрд░реЗ рдПрд▓рд┐рдореЗрдВрдЯрд╕рд╛рдареА рд╕реНрд╡рддрдВрддреНрд░ рджрд╕реНрддрдРрд╡рдЬ рдЕрд╕рд▓реЗрд▓реА рд╕реВрдЪреА рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА $unwind рдСрдкрд░реЗрдЯрд░рд╕рд╛рдареА рд╕рдорд░реНрдерди рдЬреЛрдбрд▓реЗ.
  • рд╕рдВрдЧреНрд░рд╣ рдЖрдгрд┐ рдбреЗрдЯрд╛рдмреЗрд╕ рдЖрдХрдбреЗрд╡рд╛рд░реА рдЖрдгрд┐ рдбреЗрдЯрд╛ рдЖрдХрд╛рд░ рдорд┐рд│рд╡рд┐рдгреНрдпрд╛рд╕рд╛рдареА collStats, dbStats рдЖрдгрд┐ dataSize рдЖрджреЗрд╢рд╛рдВрд╕рд╛рдареА рдЖрдВрд╢рд┐рдХ рд╕рдорд░реНрдерди рдЬреЛрдбрд▓реЗ.

рд╕реНрддреНрд░реЛрдд: opennet.ru

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛