Show HN: Mongita is to MongoDB as SQLite is to SQL

scottrogowski | 126 points

"Mongita is to MongoDB as SQLite is to SQL"

SQLite is a embeddable SQL implementation which has been ported to dozens of platforms with no requirements.

Mongita is a Python library.

I like Python as much as the next guy, but the comparison is pretty far off whack. SQLite is popular because it embeds everywhere easily. This doesn't. I can't use this on my iPhone app. It's likely way too fat for Android and awkward at best on Android.

ogre_codes | 3 years ago

So, by their own benchmarks, unless you are doing totally random lookups of documents by identifier--and mostly reads, with very few writes--you should absolutely use SQLite with JSON values, which absolutely destroy this project in performance?...

saurik | 3 years ago

Cool project but I have to admit I sure wish this was written on top of SQLite, rather than just mentioned it, implementing a query language shim for MongoDB on SQLite would be an amazing project. In the absence of such a project though, this is a pretty great alternative to have.

hardwaresofton | 3 years ago

SQL is a language and specification.

How can I trust something that makes a comparison that's not right, or a product that compares itself to mongodb

jbverschoor | 3 years ago

> Mongita is to MongoDB as SQLite is to SQL

it really isn't if it's written in python

latenightcoding | 3 years ago

Ok, if we forget the comparison with sqlite, it's a nice and useful library for python devs Thanks for making it available.

kabes | 3 years ago

I'm looking for 'X' is to Neo4j as Sqlite is to SQL any suggestions for what project is X?

elviejo | 3 years ago

How can the benchmark show Mongita be around as fast as SQLite if SQLite is written in C and Mongita in Python?

Genuine question!

axiosgunnar | 3 years ago

Very cool, I'm looking for MongoDB to be able to run on AWS Lambda and be more serverless. This seem like a step in the good direction. Personally I think JS would have been a better choice to implement this in than Python given all the mongo queries are in javascript db.collection('users').find({_id:'AN_ID'}) Also having it made in javascript would have open the option to embed it in the browser later on.

giorgioz | 3 years ago

This would be super nice to have when developing mobile apps. I’ve used sqllite when developing with react-native, but can see myself using a mongita type solution.

rvn1045 | 3 years ago

what i always think about stuff like this:

if stuff like mongita and sqlite would exist for all kinds of databases (graph,kv,xml; as for document and sql it already exists), couldn't we "just make distributed versions" if we put stuff ontop of it? like with dqlite/rqlite with sqlite?

or does there have to be some inherent mechanisms withIN the database to support distributed versions?

deknos | 3 years ago

It's telling how many killer features SQLite has, that so many people are complaining about the comparison for different reasons.

macintux | 3 years ago

I think you should change your tag line:

- From: "Mongita is to MongoDB as SQLite is to SQL"

- To: "Mongita is to MongoDB as SQLite is to MySQL"

When I see "SQL" I think of the textual query language (not a server SQL process/engine).

justsomeuser | 3 years ago

In memory, how does perf compare to https://github.com/nodkz/mongodb-memory-server ?

teryyy | 3 years ago

It's sad that author did not mentioned that disk engine basically stores copy of data in memory. And it seems from benchmark code that reading doesn't hit disk at all.

bvrmn | 3 years ago

afaict, the disk_engine does not lock the file when reading / writing. Also, the storage engine is bson and relies on cached offsets. There's also this non-atomic defrag method.

I dunno.. wouldn't touch it with a pole wearing a hazmat suit, sorry.

Using sqlite for storage and querying would've been better. Heck, that would be pretty great for moving a few smalller (server) applications off of mongodb. Although they're using ruby

jbverschoor | 3 years ago

I mostly use SQLite for persistence - put anything in and it's resistant against crashes and corruption. What is the persistence story with Mongita?

syntonym2 | 3 years ago

The valid use cases for non SQL databases can be counted on one hand.

Not sure this project understands that

null4bl3 | 3 years ago

Anyway to integrate it with a NodeJs project? Seems like a good fit for Electron apps!

catchmeifyoucan | 3 years ago

There used to be something similar called NeDB

ruffrey | 3 years ago

"Mongita" is a misspelling according to the DLE; the standard spelling is "monjita". Literally, the word means "little nun", but is the common name for flycatchers of the genus Xolmis. https://dle.rae.es/?formList=form&w=monjita# https://es.wikipedia.org/wiki/Xolmis_rubetra

Unfortunately every time I see the misspelling in this thread I involuntarily cringe. I suppose "MongoDB" is named after a slur used to insult people with Down syndrome, so maybe calling this project the Spanish equivalent of "Magolia", "Mamalian", or "Meercat" is a clever reversal of the insult into a form of self-deprecation on the part of the author, who is wittily feigning illiteracy? Or perhaps it is intended to ridicule the speling of Spainards and other speekers of Spansh? Or programmers who decided to yoke their applications to fake open source?

Even if correctly spelled, perhaps the name would be more appropriate to a debugging tool than to a hash table implementation.

kragen | 3 years ago