Każdy wie o lekkiej, ale wytrzymałej bazie danych, napisanej w JavaScript, której można używać z Node.js.
Nie chcę „wagi” (świetnych) rozwiązań, takich jak Mongo czy Couch. Wystarczyłaby prosta, zapisana w pamięci baza danych JS z możliwością przechowywania na dysku jako pliku. Używałbym go tylko do przechowywania niewielkich ilości danych.
Wymagania:
- może działać w procesie z aplikacją serwera node.js.
- może zapisać całą bazę danych na dysku i odzyskać po awarii
- NIE ma potrzeby niepotrzebnych zapisów ani obsługi transakcji
- szybkie zapytania i sortowanie byłyby fajne
- musi obsługiwać tylko małe ilości danych, łącznie do 1 MB
Do tej pory natknąłem się na TAFFY db, ale tak naprawdę nie wydaje się, aby był zoptymalizowany do użytku w Node.js. Czy ktoś widział, czego szukam?
Dzięki
Odpowiedzi:
Znam tylko Mongo i Coucha, ale jest też jeden o nazwie Persistence .
źródło
Miałem takie same wymagania jak Ty, ale nie mogłem znaleźć odpowiedniej bazy danych. nStore był obiecujący, ale API nie było wystarczająco kompletne i niezbyt spójne.
Dlatego stworzyłem NeDB , które jest osadzoną bazą danych pozbawioną zależności dla projektów Node.js. Możesz go używać z prostym
require()
, trwałym interfejsem, a jego API jest najczęściej używanym podzbiorem bardzo dobrze znanego API MongoDB.https://github.com/louischatriot/nedb
źródło
Wygląda na to, że NeDB jest tym, czego szukasz. Z notki:
źródło
Lokijs : szybki magazyn danych zorientowany na dokumenty w pamięci dla node.js, przeglądarki i cordova.
LokiJS jako idealne rozwiązanie:
https://github.com/techfort/LokiJS
źródło
Spójrz na http://www.tingodb.com . Wierzę, że robi to, czego szukasz. Dodatkowo jest w pełni kompatybilny z API MongoDB. Zmniejsza to ryzyko implementacji i daje możliwość przejścia na ciężkie rozwiązanie w miarę rozwoju aplikacji.
https://github.com/sergeyksv/tingodb
źródło
Spróbuj nStore, wygląda na to, że jest to niezła, lekka, zdejmowana baza danych klucza / wartości dla węzła. Zobacz https://github.com/creationix/nstore
źródło
Miałem problem z SQLite3, nStore i Alfredem.
To, co działa dla mnie, jest zanieczyszczone węzłami :
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}"
źródło
LevelUP ma na celu udostępnienie funkcji LevelDB w sposób przyjazny dla środowiska Node.js.
https://github.com/rvagg/node-levelup
Możesz także spojrzeć na UnQLite. z powiązaniem node.js node-unqlite
https://github.com/symisc/unqlite
źródło
Może powinieneś wypróbować LocallyDB który jest łatwy w użyciu i lekki oprócz zaawansowanego systemu wyboru podobnego do wyrażenia warunkowego javascript ...
https://github.com/btwael/locallydb
źródło
UeberDB zapewnia abstrakcję dla różnych baz danych
https://github.com/pita/ueberDB
https://www.npmjs.org/package/ueberDB
źródło
Napisałem jaguarDb, aby poradzić sobie z niektórymi rzeczami, o których wspominasz, ponieważ czasami potrzebuję "małej" bazy danych do projektów demonstracyjnych lub testowych, a nie chcę polegać na mongoDB lub innej prawdziwej bazie danych.
https://github.com/hectorcorrea/jaguarDb
źródło