2010-02-21 8 views
14

Je cherche un document axé sur db avec une API Ruby qui a des propriétés de SQLite comme:Alternative à SQLite pour MongoDB?

  • autonome,
  • Serverless,
  • zéro configuration.

Y a-t-il des alternatives légères à MongoDB ou CouchDB?

Est-ce que RDDB est une possibilité?

Sinon, quels sont les meilleurs chemins pour marcher alors?

+1

Je viens de commencer à regarder MongoDB et la première chose que je pensais, Je souhaite que cela a été divisé comme Tokyo Cabinet et Tokyo Tyrant dans une partie de la base de données et le côté réseau. Peut-être que c'est et je ne l'ai pas encore trouvé. Je pense aussi à essayer d'utiliser SQLite et Lua pour créer une sorte de db orienté document. – uroc

+0

Quel système d'exploitation? Windows, Linux, IPhone ....? – Theo

+0

@Theo: linux et windows. – davidbe

Répondre

3

Vous pouvez utiliser Tokyo Cabinet via son API Ruby.

+0

Est-il possible d'utiliser Tokyo Cabinet dans un environnement Windows? – Theo

+0

J'ai regardé le Cabinet de Tokyo. De la doc je vois, il n'a pas une fonction de recherche comme MongoDB a. Tokyo Dystopia n'a pas d'API Ruby. De plus, le Cabinet de Tokyo n'est pas vraiment axé sur les documents. – davidbe

4

Ce n'est pas encore prêt, mais la version intégrable de CouchDB est sur la feuille de route à long terme.

La réplication est destinée à activer les applications hors ligne avec CouchDB. Si vous vous retrouvez avec des besoins très spécifiques, vous pouvez répliquer les données de couchdb vers une infrastructure de données locale, les stocker localement, les mettre à jour et repasser les données via la réplication, mais cela nécessitera du code.

1

Je pense presque que vous pourriez faire une sorte de piratage pour y parvenir. Avoir une table utilisant les identifiants de ligne de sqlite avec un champ pour le nom de la collection et le texte blob qui serait le code json. Avoir une autre table pour l'indexation avec les champs d'une collection (nom de collection, nom de champ, valeur de champ, identifiant de ligne de document).

Vous pourriez faire un peu de classe wrapper pour gérer des choses comme les mises à jour et les recherches. Serait intéressant.

2

Si vous utilisiez Perl, je recommanderais DBM::Deep, qui stocke les structures de données arbitraires sur le disque, y compris les transactions avec commit/rollback, et il s'agit d'une installation non-C-Perl-module. Ne devient pas beaucoup plus léger que ça.