Легкая Javascript DB для использования в Node.js

Кто-нибудь знает простую, но долговечную базу данных, написанную на Javascript, которая может использоваться с Node.js.

Я не хочу "вес" (больших) решений, таких как Mongo или Couch. Простую в памяти базу данных JS с возможностью сохранения на диске в виде файла будет достаточно. Я бы использовал его только для хранения небольших объемов данных.

Требования:

  • может выполняться с помощью Node.js-сервера
  • может сохранить всю базу данных на диск и восстановить после сбоя
  • НЕТ необходимости для атомной записи или поддержки транзакций.
  • быстрые запросы и сортировка будут приятными
  • требуется только поддержка небольших объемов данных, всего до 1 МБ.

Я до сих пор сталкивался с TAFFY db, но он действительно не оптимизирован для использования в Node.js. Кто-нибудь видел то, что я ищу там?

Спасибо

Ответ 1

Я знаком с Mongo и Couch, но там также называется Persistence.

Ответ 2

У меня были те же требования, что и у вас, но не удалось найти подходящую базу данных. nStore был многообещающим, но API был недостаточно полным и не очень последовательным.

Вот почему я сделал NeDB, в которую встроена база данных без зависимостей для проектов Node.js. Вы можете использовать его с простым require(), он является постоянным, и его API является наиболее часто используемым подмножеством очень известного API MongoDB.

https://github.com/louischatriot/nedb

Ответ 3

NeDB кажется тем, что вы ищете. Из рекламного ролика:

Встроенная постоянная база данных для Node.js, написанная в Javascript, без зависимости (за исключением модулей npm, конечно). Вы можете думать об этом как о SQLite для проектов Node.js, которые могут использоваться с простым требованием. API - это подмножество MongoDB. Вы можете использовать его как постоянный или встроенный в хранилище данных.

Ответ 4

Взгляните на http://www.tingodb.com. Я считаю, что он делает то, что вы ищете. Кроме того, он полностью совместим с API MongoDB. Это снижает риски внедрения и дает вам возможность переключаться на тяжелое решение по мере роста вашего приложения.

Ответ 5

Lokijs: быстрый, ориентированный на документы хранилище документов для node.js, браузера и кордовы.

  • In-memory Javascript Datastore wih Persistence
  • In-Browser NoSQL db с синхронизацией и сохранением
  • магазин в стиле Редиса, установленный npm.
  • Неустойчивый NoSQL db для Кордовы
  • Встраиваемый NoSQL db с сохранением для node -webkit

LokiJS - идеальное решение:

  • Мобильные приложения - особенно на основе HTML5 (Cordova, Phonegap, и т.д.)
  • Node.js встроенный хранилище данных для приложений малого и среднего бизнеса
  • Встроенное в настольное приложение с Node Webkit

Ответ 6

Попробуйте nStore, это похоже на хороший ключ/значение, облегченный dbedded db для node. См. https://github.com/creationix/nstore

Ответ 7

У меня были проблемы с SQLite3, nStore и Alfred.

Что для меня работает node-dirty:

path = "#{__dirname}/data/messages.json"
messages = db path

message = 'text': 'Lorem ipsum dolor sit...'

messages.on "load", ->    
    messages.set 'my-unique-key', message, ->
        console.log messages.get('my-unique-key').text

    messages.forEach (key, value) ->
        console.log "Found key: #{key}, val: %j", value

messages.on "drain", ->
    console.log "Saved to #{path}"

Ответ 8

Встроенная поддержка встроенной JavaScript файловой системы JavaScript, совместимая на уровне API с MongoDB. https://github.com/sergeyksv/tingodb

LevelUP стремится раскрывать функции LevelDB в Node.js-дружественном образе. https://github.com/rvagg/node-levelup

Вы также можете посмотреть UnQLite. с привязкой Node.js node -unqlite

Я предпочитаю tingodb, так как у него больше функций.

Ответ 9

Возможно, вам стоит попробовать LocallyDB, он прост в использовании и облегчен в дополнение к расширенной системе выбора, похожей на javascript условный выражение...

Ответ 10

Я написал jaguarDb для обработки некоторых вещей, которые вы упоминаете, поскольку мне иногда нужна небольшая база данных для демонстрационных или тестовых проектов, и я не хочу зависеть от mongoDB или другой реальной базы данных.

https://github.com/hectorcorrea/jaguarDb