2010-02-21 3 views
14

Я ищу для документа-ориентированных БД с API Ruby, который имеет SQLite подобных свойств:SQLite-подобная альтернатива для MongoDB?

  • самодостаточных,
  • бессерверного,
  • нулевой конфигурации.

Есть ли альтернативные варианты для MongoDB или CouchDB?

Возможно ли RDDB?

Если нет, то каковы наилучшие пути для ходьбы?

+1

Я только начал смотреть на MongoDB и первая вещь, которую я думал, Хотелось бы, чтобы это было расколото, как Tokyo Cabinet и Tokyo Tyrant, в базу данных и сетевую сторону. Возможно, это так, и я еще не нашел его. Я также думаю о попытке использовать SQLite и Lua для создания своего рода документально-ориентированного db. – uroc

+0

Какая ОС? Windows, Linux, IPhone ....? – Theo

+0

@ Theo: linux & windows. – davidbe

ответ

3

Вы можете использовать Tokyo Cabinet через свой Ruby API.

+0

Можно ли использовать Tokyo Cabinet в среде Windows? – Theo

+0

Я посмотрел на Токийский кабинет. Из документа, который я вижу, у него нет функции поиска, как у MongoDB. У Tokyo Dystopia нет API Ruby. Плюс, Токийский кабинет на самом деле не ориентирован на документы. – davidbe

4

Это еще не готово, но встраиваемая версия CouchDB находится на долгосрочной дорожной карте.

Репликация предназначена для включения автономных приложений с CouchDB. Если вы столкнулись с очень конкретными потребностями, вы можете реплицировать данные с couchdb на локальную структуру данных, локально хранить их, обновлять и выталкивать данные через репликацию, но для этого потребуется некоторый код.

1

Я почти чувствую, что вы можете сделать какой-то взлом, чтобы достичь этого.

У вас есть таблица, в которой используются идентификаторы строк sqlite вместе с полем для имени коллекции и блоком текста, который будет json-кодом.

Есть еще одна таблица для индексирования с полями в коллекции (имя коллекции, имя поля, значение поля, идентификатор строки документа).

Вы можете сделать некоторый класс-оболочку для обработки таких вещей, как обновления и поисковые запросы. Было бы интересно.

2

Если вы используете Perl, я бы порекомендовал DBM::Deep, который хранит произвольные структуры данных на диске, включая транзакции с фиксацией/откатом, и это установка не одного C-Perl-модуля. Не становится намного легче.