Hoʻokuʻu ʻia o FerretDB 0.1, kahi hoʻokō o MongoDB e pili ana i ka PostgreSQL DBMS

Ua paʻi ʻia ka hoʻokuʻu ʻana o ka papahana FerretDB 0.1 (ʻo MangoDB ma mua), e ʻae iā ʻoe e hoʻololi i ka DBMS MongoDB e pili ana i ka palapala me PostgreSQL me ka ʻole e hoʻololi i ke code noi. Hoʻokomo ʻia ʻo FerretDB ma ke ʻano he kikowaena proxy nāna e unuhi i nā kelepona iā MangoDB i loko o nā nīnau SQL i PostgreSQL, e ʻae ʻia e hoʻohana ʻia ʻo PostgreSQL ma ke ʻano he waihona maoli. Ua kākau ʻia ke code ma Go a māhele ʻia ma lalo o ka laikini Apache 2.0.

Hiki ke ala mai ka pono no ka neʻe ʻana ma muli o ka hoʻololi ʻana o MongoDB i kahi laikini SSPL proprietary, kahi i hoʻokumu ʻia ma ka laikini AGPLv3, akā ʻaʻole i wehe ʻia, no ka mea, aia kahi koi hoʻokae e hāʻawi ma lalo o ka laikini SSPL ʻaʻole wale ka palapala noi ponoʻī, akā pū kekahi. ke kumu kumu o nā mea a pau e pili ana i ka lawelawe kapuaʻi hāʻawi.

ʻO ka poʻe i manaʻo ʻia ʻo FerretDB nā mea hoʻohana ʻaʻole i hoʻohana i nā mana holomua o MongoDB i kā lākou mau noi, akā makemake lākou e hoʻohana i kahi pūʻulu polokalamu wehe loa. I kēia manawa o ka hoʻomohala ʻana, kākoʻo mau ʻo FerretDB i kahi ʻāpana o nā mana MongoDB i hoʻohana pinepine ʻia i nā noi maʻamau. I ka wā e hiki mai ana, hoʻolālā lākou e hoʻokō i ka hoʻokō piha me nā mea hoʻokele no MongoDB a hāʻawi i ka hiki ke hoʻohana iā FerretDB ma ke ʻano he pani hakahaka no MongoDB.

E hoʻomanaʻo e noho ana ʻo MongoDB i kahi niche ma waena o nā ʻōnaehana wikiwiki a hiki ke hoʻohana ʻia i ka ʻikepili i ke kī / ʻano waiwai, a me ka relational DBMS, hana a maʻalahi i ka hana ʻana i nā nīnau. Kākoʻo ʻo MongoDB i ka mālama ʻana i nā palapala i kahi ʻano JSON-like, he ʻōlelo maʻalahi no ka hoʻopuka ʻana i nā nīnau, hiki ke hana i nā kuhikuhi no nā ʻano ʻano mālama like ʻole, hāʻawi maikaʻi i ka mālama ʻana i nā mea binary nui, kākoʻo i ka hoʻopaʻa inoa ʻana o nā hana e hoʻololi a hoʻohui i ka ʻikepili i ka waihona. hana e like me ka paradigm Map/Reduce, kākoʻo i ka hana hou ʻana a me ke kūkulu ʻana i nā hoʻonohonoho hoʻomanawanui hewa.

Ua hoʻolālā hou ka hoʻokuʻu ʻana o FerretDB 0.1.0 i ke ʻano o ka lawe ʻana i ka ʻikepili mai PostgreSQL. Ma mua, no kēlā me kēia noi MongoDB e hiki mai ana, ua hana ʻia kahi nīnau SQL i PostgreSQL, me ka hoʻohana ʻana i nā hana no ka hana ʻana me ke ʻano JSON a me ka kānana ʻana i nā hopena ma ka ʻaoʻao PostgreSQL. Ma muli o nā ʻokoʻa o nā semantics o PostgreSQL a me MongoDB json hana, aia kahi ʻokoʻa i ka ʻano i ka hoʻohālikelike ʻana a me ka hoʻokaʻawale ʻana i nā ʻano like ʻole. No ka hoʻoponopono ʻana i kēia pilikia, ua kiʻi nui ʻia ka ʻikepili mai PostgreSQL, a ua kānana ʻia ka hopena ma ka ʻaoʻao FerretDB, kahi i hiki ai ke hana hou i ke ʻano o MongoDB i ka hapa nui o nā kūlana.

ʻO ke kumukūʻai o ka hoʻonui ʻana i ka hoʻohālikelike ʻana he emi ʻana o ka hana, a ma nā hoʻokuʻu e hiki mai ana e manaʻo lākou e uku ʻia ma ke kānana koho ʻana ma ka ʻaoʻao FerretDB wale nō nā nīnau no ka mea he ʻokoʻa ka hana. No ka laʻana, hiki ke hana ʻia ka nīnau "db.collection.find({_id: 'some-id-value'})" ma PostgreSQL. ʻO ka pahuhopu nui o ka papahana ma kēia pae o ka hoʻomohala ʻana, ʻo ia ka hoʻokō ʻana me MongoDB, a hoʻihoʻi ʻia ka hana i ke kua i kēia manawa. Ma waena o nā hoʻololi hana i ka mana hou, kākoʻo ʻia nā mea hoʻohana bit a pau, ka mea hoʻohālikelike "$eq", a me nā mea hoʻohana "$ elemMatch" a me "$bitsAllClear".

Source: opennet.ru

Pākuʻi i ka manaʻo hoʻopuka