Are thinking of CouchDB? I tought that MongoDB didn't have to wait for a crash.
> Over the weekend of August 7th–8th, 2010 we discovered and fixed a nasty bug in CouchDB 1.0.0. The problem was subtle (cancelling a timer, without deleting the reference to it) but the ramifications are not: once the bad code path is triggered, subsequent writes to the database are never committed. This means there is potential data-loss for users of 1.0.0.
> For current users, these instructions will ensure your data is safe. First: do not restart your CouchDB! The hot fix involves changing configuration on the running server, so have your admin credentials handy (if your CouchDB is in Admin Party mode with no admins defined, you won’t need admin credentials). (If you do not have admin credentials, but you can restart the server, you can still prevent data loss. Read on.)
http://web.archive.org/web/20100815020158/http://couchdb.apache.org/notice/1.0.1.html
This would be a perfect use case for CouchDB as it is built upon apache and is thus accessible through HTTP be it client-side or server-side:
Look at CouchDB: http://couchdb.apache.org/
I don't know if it supports regular expression searches, i am not aware of any database that supports this. If you understand Regex you would know that it typically gets compiled to code and can get really complex in what it supports. You will probably be better off in having an instance of Lucene on the mobile device as this supports complex searching like proximity. Maybe see: https://github.com/lukhnos/mobilelucene
CouchDB?
use a server to store the data, use indexdb and service workers to sync the data as it changes. PouchDB can already sync to a remote server so it might fit your use case.
> happy with Emacs I am right there with you. Every once in a while I take some time to try out some other editor for some section of my daily typing and I always come back to emacs.
One of the stranger things I personally love about emacs is how it won't let you press tab too many times on non-whitespace delimited languages.
> When it works well you almost forget it's there, when there are problems it often involves differences in semantics between the two languages, like truth/falsity or ambiguity mapping nested lists to JSON.
I prototyped an inventory management system that used JSON RPC served by CL but have since transitioned to couchDB+pouchDB for the model layer and handlebars for the view. Finally just vanilla JS for the business logic, couch views, and all the rest. I miss parenthesis but the work flow in a web browser definitely has its moments that remind me of working in emacs.
I'm not sure what technologies you would really need for your project, but http://couchdb.apache.org is really font-end friendly.
On the other hand, you should "learn" an ORM instead of MYSQL anyhow, and that may make the whole process a lot easier, since you stay within your language of choice.
Just thought I'd reply back to you, since I'm new to relational databases & thought you might find this interesting.
I've talked to a co-worker who is using CouchDB and he recommends that over MongoDB (he is using CouchDB, LAMP, Beanstalkd for queuing, CloudFlare for CDN).
Free book online: http://guide.couchdb.org/editions/1/en/api.html Since you're a programmer, I'm linking you to the API section, which shows how simple it is.
Note: For security reasons, you need to map 5984 remotely, don't open it to the public.
From a terminal: ssh -L5984:127.0.0.1:5984 ssh.example.com
Then (once you've logged into your server with the above line) your http://localhost:5984/_utils will bring up the Futon admin page for CouchDB.