Облегченная Javascript DB для использования в Node.js
Кто-нибудь знает легкую, но надежную базу данных, написанную на Javascript, которую можно использовать с Node.js.
Мне не нужен "вес" таких (хороших) решений, как Mongo или Couch. Достаточно будет простой базы данных JS в памяти с возможностью сохранения на диске в виде файла. Я бы использовал его только для хранения небольших объемов данных.
Требования:
- может выполняться в процессе с приложением сервера node.js
- может сохранить всю базу данных на диск и восстановить после сбоя
- НЕТ необходимости в атомарных операциях записи или поддержки транзакций
- быстрые запросы и сортировка были бы хороши
- требуется только поддержка небольших объемов данных, всего до 1 МБ
До сих пор я сталкивался с TAFFY db, но, похоже, он не оптимизирован для использования в Node.js. Кто-нибудь видел, что я там ищу?
Спасибо
11 ответов
Я знаком только с Монго и Куш, но есть еще один, который называется Постоянство.
У меня были те же требования, что и у вас, но я не смог найти подходящую базу данных. nStore был многообещающим, но API был недостаточно полным и не очень согласованным.
Вот почему я создал NeDB, которая является независимой встроенной базой данных для проектов Node.js. Вы можете использовать его с простым require()
, он является постоянным, и его API является наиболее часто используемым подмножеством очень известного API MongoDB.
Lokijs: быстрое, ориентированное на память хранилище документов, ориентированное на документы для node.js, браузера и cordova.
- В памяти Javascript Datastore с постоянством
- In-Browser NoSQL db с синхронизацией и сохранением
- магазин в стиле Redis
- Персистентная база данных NoSQL для Cordova
- Встраиваемая база данных NoSQL с постоянством для узла-webkit
LokiJS - идеальное решение:
- Мобильные приложения - особенно на основе HTML5 (Cordova, Phonegap и т. Д.)
- Node.js встроенное хранилище данных для малых и средних приложений
- Встроенный в настольное приложение с Node Webkit
NeDB, кажется, то, что вы ищете. Из объявления:
Встроенная постоянная база данных для Node.js, написанная на Javascript, без каких-либо зависимостей (кроме модулей npm, конечно). Вы можете думать об этом как о SQLite для проектов Node.js, который можно использовать с простым оператором require. API является подмножеством MongoDB. Вы можете использовать его как постоянное или только в памяти хранилище данных.
Взгляните на http://www.tingodb.com/. Я верю, что это делает то, что вы ищете. Кроме того, он полностью совместим с MongoDB API. Это снижает риски внедрения и дает вам возможность переключаться на тяжелое решение по мере роста вашего приложения.
Попробуйте nStore, он выглядит как хороший ключ / значение облегченной развернутой базы данных для узла. Смотрите https://github.com/creationix/nstore
У меня были проблемы с SQLite3, nStore и Alfred.
То, что работает для меня, является грязным узлом:
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}"
LevelUP стремится раскрыть возможности LevelDB в удобной для Node.js форме.
https://github.com/rvagg/node-levelup
Вы также можете посмотреть на UnQLite. с привязкой node.js node-unqlite
Может быть, вы должны попробовать LocallyDB, это простой в использовании и легкий в дополнение к расширенной системе выбора, похожей на условное выражение javascript...
UeberDB обеспечивает абстракцию для различных баз данных
Я написал jaguarDb для обработки некоторых вещей, о которых вы упомянули, поскольку мне иногда нужна "маленькая" база данных для демонстрационных или тестовых проектов, и я не хочу зависеть от mongoDB или другой реальной базы данных.