ืฉื—ืจื•ืจ ืฉืœ FerretDB 0.1, ื™ื™ืฉื•ื ืฉืœ MongoDB ื”ืžื‘ื•ืกืก ืขืœ PostgreSQL DBMS

ื”ืฉื—ืจื•ืจ ืฉืœ ืคืจื•ื™ืงื˜ FerretDB 0.1 (ืœืฉืขื‘ืจ MangoDB) ืคื•ืจืกื, ื•ืžืืคืฉืจ ืœืš ืœื”ื—ืœื™ืฃ ืืช ื”-DBMS MongoDB ืžื•ื ื—ื” ื”ืžืกืžื›ื™ื ื‘-PostgreSQL ืžื‘ืœื™ ืœื‘ืฆืข ืฉื™ื ื•ื™ื™ื ื‘ืงื•ื“ ื”ื™ื™ืฉื•ื. FerretDB ืžื™ื•ืฉื ื›ืฉืจืช proxy ืฉืžืชืจื’ื ืงืจื™ืื•ืช ืœ-MangoDB ืœืฉืื™ืœืชื•ืช SQL ืœ-PostgreSQL, ืžื” ืฉืžืืคืฉืจ ืœื”ืฉืชืžืฉ ื‘-PostgreSQL ื›ืื—ืกื•ืŸ ื‘ืคื•ืขืœ. ื”ืงื•ื“ ื›ืชื•ื‘ ื‘-Go ื•ืžื•ืคืฅ ืชื—ืช ืจื™ืฉื™ื•ืŸ Apache 2.0.

ื”ืฆื•ืจืš ื‘ื”ื’ื™ืจื” ืขืฉื•ื™ ืœื”ืชืขื•ืจืจ ืขืงื‘ ืžืขื‘ืจ ืฉืœ MongoDB ืœืจื™ืฉื™ื•ืŸ SSPL ืงื ื™ื™ื ื™, ื”ืžื‘ื•ืกืก ืขืœ ืจื™ืฉื™ื•ืŸ AGPLv3, ืืš ืื™ื ื• ืคืชื•ื—, ืžื›ื™ื•ื•ืŸ ืฉื”ื•ื ืžื›ื™ืœ ื“ืจื™ืฉื” ืžืคืœื” ืœืžืกื•ืจ ืชื—ืช ืจื™ืฉื™ื•ืŸ SSPL ืœื ืจืง ืืช ืงื•ื“ ื”ืืคืœื™ืงืฆื™ื” ืขืฆืžื•, ืืœื ื’ื ืงื•ื“ ื”ืžืงื•ืจ ืฉืœ ื›ืœ ื”ืจื›ื™ื‘ื™ื ื”ืžืขื•ืจื‘ื™ื ื‘ืฉื™ืจื•ืช ืขื ืŸ ื”ืืกืคืงื”.

ืงื”ืœ ื”ื™ืขื“ ืฉืœ FerretDB ื”ื•ื ืžืฉืชืžืฉื™ื ืฉืื™ื ื ืžืฉืชืžืฉื™ื ื‘ื™ื›ื•ืœื•ืช ื”ืžืชืงื“ืžื•ืช ืฉืœ MongoDB ื‘ืืคืœื™ืงืฆื™ื•ืช ืฉืœื”ื, ืืœื ืจื•ืฆื™ื ืœื”ืฉืชืžืฉ ื‘ืขืจื™ืžืช ืชื•ื›ื ื” ืคืชื•ื—ื” ืœื—ืœื•ื˜ื™ืŸ. ื‘ืฉืœื‘ ื”ืคื™ืชื•ื— ื”ื ื•ื›ื—ื™, FerretDB ืขื“ื™ื™ืŸ ืชื•ืžืš ืจืง ื‘ื—ืœืง ืžื™ื›ื•ืœื•ืช MongoDB ื”ืžืฉืžืฉื•ืช ืœืจื•ื‘ ื‘ื™ื™ืฉื•ืžื™ื ื˜ื™ืคื•ืกื™ื™ื. ื‘ืขืชื™ื“, ื”ื ืžืชื›ื ื ื™ื ืœื”ืฉื™ื’ ืชืื™ืžื•ืช ืžืœืื” ืขื ื“ืจื™ื™ื‘ืจื™ื ืขื‘ื•ืจ MongoDB ื•ืœืกืคืง ืืช ื”ื™ื›ื•ืœืช ืœื”ืฉืชืžืฉ ื‘- FerretDB ื›ืชื—ืœื™ืฃ ืฉืงื•ืฃ ืœ- MongoDB.

ื ื–ื›ื™ืจ ื›ื™ MongoDB ืชื•ืคืกืช ื ื™ืฉื” ื‘ื™ืŸ ืžืขืจื›ื•ืช ืžื”ื™ืจื•ืช ื•ื ื™ืชื ื•ืช ืœื”ืจื—ื‘ื” ื”ืžืคืขื™ืœื•ืช ื ืชื•ื ื™ื ื‘ืคื•ืจืžื˜ ืžืคืชื—/ืขืจืš, ืœื‘ื™ืŸ DBMSs ืจืœืฆื™ื•ื ืœื™ื™ื ืฉื”ื ืคื•ื ืงืฆื™ื•ื ืœื™ื™ื ื•ืงืœื™ื ืœื ื™ืกื•ื— ืฉืื™ืœืชื•ืช. MongoDB ืชื•ืžืš ื‘ืื—ืกื•ืŸ ืžืกืžื›ื™ื ื‘ืคื•ืจืžื˜ ื“ืžื•ื™ JSON, ื‘ืขืœ ืฉืคื” ื’ืžื™ืฉื” ืœืžื“ื™ ืœื”ืคืงืช ืฉืื™ืœืชื•ืช, ื™ื›ื•ืœ ืœื™ืฆื•ืจ ืื™ื ื“ืงืกื™ื ืขื‘ื•ืจ ืชื›ื•ื ื•ืช ืžืื•ื—ืกื ื•ืช ืฉื•ื ื•ืช, ืžืกืคืง ื‘ื™ืขื™ืœื•ืช ืื—ืกื•ืŸ ืฉืœ ืื•ื‘ื™ื™ืงื˜ื™ื ื‘ื™ื ืืจื™ื™ื ื’ื“ื•ืœื™ื, ืชื•ืžืš ื‘ืจื™ืฉื•ื ืคืขื•ืœื•ืช ืœืฉื™ื ื•ื™ ื•ื”ื•ืกืคืช ื ืชื•ื ื™ื ืœืžืกื“ ื”ื ืชื•ื ื™ื, ื™ื›ื•ืœ ืขื‘ื•ื“ื” ื‘ื”ืชืื ืœืคืจื“ื™ื’ืžื” Map/Reduce, ืชื•ืžื›ืช ื‘ืฉื›ืคื•ืœ ื•ื‘ื‘ื ื™ื™ื” ืฉืœ ืชืฆื•ืจื•ืช ืกื‘ื™ืœื•ืช ืœืชืงืœื•ืช.

ื”ืฉื—ืจื•ืจ ืฉืœ FerretDB 0.1.0 ืขื™ืฆื‘ ืžื—ื“ืฉ ืœื—ืœื•ื˜ื™ืŸ ืืช ืฉื™ื˜ืช ืื—ื–ื•ืจ ื”ื ืชื•ื ื™ื ืž-PostgreSQL. ื‘ืขื‘ืจ, ืขื‘ื•ืจ ื›ืœ ื‘ืงืฉืช MongoDB ื ื›ื ืกืช, ื ื•ืฆืจื” ืฉืื™ืœืชืช SQL ืื—ืช ืœ-PostgreSQL, ืชื•ืš ืฉื™ืžื•ืฉ ื‘ืคื•ื ืงืฆื™ื•ืช ืœืขื‘ื•ื“ื” ืขื ืคื•ืจืžื˜ JSON ื•ืœืกื™ื ื•ืŸ ื”ืชื•ืฆืื•ืช ื‘ืฆื“ PostgreSQL. ืขืงื‘ ื”ื‘ื“ืœื™ื ื‘ืกืžื ื˜ื™ืงื” ืฉืœ ืคื•ื ืงืฆื™ื•ืช PostgreSQL ื•-MongoDB json, ื”ื™ื™ืชื” ืื™ ื”ืชืืžื” ื‘ื”ืชื ื”ื’ื•ืช ื‘ืขืช ื”ืฉื•ื•ืื” ื•ืžื™ื•ืŸ ืฉืœ ืกื•ื’ื™ื ืฉื•ื ื™ื. ื›ื“ื™ ืœืคืชื•ืจ ื‘ืขื™ื” ื–ื•, ื ืชื•ื ื™ื ื›ืขืช ื ืฉืœืคื™ื ื‘ืื•ืคืŸ ืžื™ื•ืชืจ ืž-PostgreSQL, ื•ื”ืชื•ืฆืื” ืžืกื•ื ื ืช ื‘ืฆื“ FerretDB, ืžื” ืฉืื™ืคืฉืจ ืœืฉื›ืคืœ ืืช ื”ื”ืชื ื”ื’ื•ืช ืฉืœ MongoDB ื‘ืจื•ื‘ ื”ืžืฆื‘ื™ื.

ื”ืžื—ื™ืจ ืฉืœ ืชืื™ืžื•ืช ืžื•ื’ื‘ืจืช ื”ื™ื” ื™ืจื™ื“ื” ื‘ื‘ื™ืฆื•ืขื™ื, ืฉื‘ืžื”ื“ื•ืจื•ืช ืขืชื™ื“ื™ื•ืช ื”ื ืžืฆืคื™ื ืœืคืฆื•ืช ืขืœ ื™ื“ื™ ืกื™ื ื•ืŸ ืกืœืงื˜ื™ื‘ื™ ื‘ืฆื“ FerretDB ืจืง ืฉืื™ืœืชื•ืช ืฉื™ืฉ ืœื’ื‘ื™ื”ืŸ ืื™ ื”ืชืืžื” ื‘ื”ืชื ื”ื’ื•ืช. ืœื“ื•ื’ืžื”, ื ื™ืชืŸ ืœืขื‘ื“ ืืช ื”ืฉืื™ืœืชื” "db.collection.find({_id: 'some-id-value'})" ื‘ืžืœื•ืื” ื‘-PostgreSQL. ื”ืžื˜ืจื” ื”ืขื™ืงืจื™ืช ืฉืœ ื”ืคืจื•ื™ืงื˜ ื‘ืฉืœื‘ ื–ื” ืฉืœ ื”ืคื™ืชื•ื— ื”ื™ื ืœื”ืฉื™ื’ ืชืื™ืžื•ืช ืขื MongoDB, ื•ื”ื‘ื™ืฆื•ืขื™ื ื ื“ื—ืงื™ื ืœืจืงืข ืœืขืช ืขืชื”. ื‘ื™ืŸ ื”ืฉื™ื ื•ื™ื™ื ื”ืคื•ื ืงืฆื™ื•ื ืœื™ื™ื ื‘ื’ืจืกื” ื”ื—ื“ืฉื”, ืžืฆื•ื™ืŸ ืชืžื™ื›ื” ื‘ื›ืœ ืื•ืคืจื˜ื•ืจื™ ื”ืกื™ื‘ื™ื•ืช, ืื•ืคืจื˜ื•ืจ ื”ื”ืฉื•ื•ืื” "$eq", ื›ืžื• ื’ื ื”ืื•ืคืจื˜ื•ืจื™ื "$elemMatch" ื•-"$bitsAllClear".

ืžืงื•ืจ: OpenNet.ru

ื”ื•ืกืคืช ืชื’ื•ื‘ื”