Облегченная 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.

https://github.com/louischatriot/nedb

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

  • В памяти Javascript Datastore с постоянством
  • In-Browser NoSQL db с синхронизацией и сохранением
  • магазин в стиле Redis
  • Персистентная база данных NoSQL для Cordova
  • Встраиваемая база данных NoSQL с постоянством для узла-webkit

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

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

https://github.com/techfort/LokiJS

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

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

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

https://github.com/sergeyksv/tingodb

Попробуйте 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

https://github.com/symisc/unqlite

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

https://github.com/btwael/locallydb

UeberDB обеспечивает абстракцию для различных баз данных

https://github.com/pita/ueberDB

https://www.npmjs.org/package/ueberDB

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

https://github.com/hectorcorrea/jaguarDb

Другие вопросы по тегам