Node.js'de kullanım için hafif Javascript DB [kapalı]


130

Node.js ile kullanılabilen, Javascript ile yazılmış hafif ama dayanıklı bir veritabanı bilen var mı?

Mongo veya Couch gibi (harika) çözümlerin 'ağırlığını' istemiyorum. Diskte dosya olarak kalabilme özelliğine sahip basit bir bellek içi JS veritabanı yeterli olacaktır. Bunu yalnızca küçük miktarlarda veri depolamak için kullanırdım.

Gereksinimler:

  • node.js sunucu uygulamasıyla süreç içinde çalışabilir
  • tüm veritabanını diske kaydedebilir ve bir arızadan sonra kurtarabilir
  • Atomik yazma veya işlem desteklerine gerek YOK
  • hızlı sorgular ve sıralama iyi olurdu
  • Toplamda 1MB’ye kadar yalnızca küçük veri hacimlerini desteklemesi gerekir

Şimdiye kadar TAFFY db ile karşılaştım, ancak gerçekten Node.js'de kullanım için optimize edilmiş görünmüyor. Orada ne aradığımı gören var mı?

Teşekkürler


Yanıtlar:



104

Sizinle aynı gereksinimlerim vardı ama uygun bir veritabanı bulamadım. nStore umut vericiydi, ancak API yeterince eksiksiz değildi ve çok da tutarlı değildi.

Bu yüzden Node.js projeleri için bağımlılık içermeyen gömülü bir veritabanı olan NeDB'yi yaptım . Basit bir şekilde kullanabilirsiniz require(), kalıcıdır ve API'si, çok iyi bilinen MongoDB API'sinin en yaygın kullanılan alt kümesidir.

https://github.com/louischatriot/nedb


8
nedb harikadır, ancak onu birden çok işlemde kullanamayacağınızı unutmayın - her biri başlangıçta kendi kopyasını alır.
Meekohi

12
Bir uyarı olarak NeDB terk edilmiş gibi görünüyor.
Guy

4
1.5 yıl önceki son taahhüdün neden projenin terk edildiği anlamına geldiğini anlamıyorum. Kesinlikle değil, sadece amacına ulaştı ve uzun metrajlı
filmde

7
"Bu proje <bugünün tarihi> - NeDB (c) 2013- <bugünün yılı> Louis Chatriot> olarak hala aktif" yazan son satırı değiştirerek, her 3 ayda bir BENİOKU'yu güncelleyen basit bir komut dosyasına sahip olmayı düşünün; commit mesajı, insanların github'ın üst kısmında gördükleri ilk şey olan "projenin <bugünün tarihi> itibariyle hala aktif olduğunu belirtmek" gibi bir şey olmalıdır.
Giacomo Lacava

6
@LouisChatriot Kabul etmeliyim. 107 sorunun var, 32 PR var ve koddaki son değişiklik 3 yıl önceydi. Sadece görüyorum ki, uyumsuzluklarla uğraşmak istemediğim bir yazılım (js dev'de 3 yıl bir sonsuzluktur), göz ardı edilen sorunlar, vb. Doğru miktarda yıldız var ama taze çığlık atmıyor.
Carles Alcolea

18

NeDB aradığınız şey gibi görünüyor. Tanıtımdan:

Node.js için, bağımlılık olmadan Javascript ile yazılmış gömülü kalıcı veritabanı (tabii ki npm modülleri hariç). Bunu, basit bir require ifadesiyle kullanılabilecek Node.js projeleri için bir SQLite olarak düşünebilirsiniz. API, MongoDB'lerin bir alt kümesidir. Bunu kalıcı veya yalnızca bellek içi veri deposu olarak kullanabilirsiniz.


@Deilan En son 1.5 yıl önceki taahhüdün neden projenin terk edildiği anlamına geldiğini anlamıyorum. Kesinlikle değil, sadece amacına ulaştı ve uzun metrajlı
filmde

@LouisChatriot Genel olarak şu ana kadar herhangi bir yargıda yanlış olduğumu kabul ediyorum. Bu yüzden ilk yorumlarımdan kaldırdım.
Deilan

17

Lokijs : node.js, tarayıcı ve cordova için hızlı, bellek içi belge odaklı bir veri deposu.

  • Kalıcılıkla Bellek İçi Javascript Datastore
  • Senkronize ve kalıcı olarak In-Browser NoSQL db
  • Redis tarzı bir mağaza ve npm kurulumu uzakta
  • Cordova için Kalıcı NoSQL db
  • Düğüm webkit için Persistence ile gömülebilir NoSQL db

LokiJS ideal çözüm olacak:

  • Mobil uygulamalar - özellikle HTML5 tabanlı (Cordova, Phonegap vb.)
  • Küçük ve orta ölçekli uygulamalar için Node.js gömülü veri deposu
  • Node Webkit ile masaüstü uygulamasına gömülü

https://github.com/techfort/LokiJS


yerel depomu temizlersem lokiJS'deki verilerim silinir mi?
HIRA THAKUR

@LeonardoDaCodinchi - Nasıl kullandığınıza bağlıdır, ancak Düğümde kalıcılık için bir json dosyasına kaydeder.
BryanGrezeszak

Veritabanı yine de başlangıçta bellekte saklanır. Anladığım kadarıyla.
mjwrazor

14

Http://www.tingodb.com adresine bir göz atın . Aradığınızı yaptığına inanıyorum. Ek olarak, MongoDB API ile tamamen uyumludur. Bu, uygulama risklerini azaltır ve uygulamanız büyüdükçe size ağır çözüme geçme seçeneği sunar.

https://github.com/sergeyksv/tingodb


1
MongoDB ile tam uyumluluk çok güzel bir özelliktir - uygulamanızı küçük yerel db ile çalışacak şekilde geliştirin, gerekirse MongoDB'ye ölçeklendirin .... Teşekkürler!
Brad Parks

... ama kesinlikle MongoDB uyumlu olan nedb ile karşılaştırmayı ve hangisinin sizin için işe yaradığını görmeyi unutmayın
Brad Parks

En son taahhüt 26 Aralık 2016.
Deilan


8

SQLite3, nStore ve Alfred ile sorun yaşadım.

Benim için işe yarayan şey düğüm kirliliği :

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}"

Paylaşım için teşekkürler, bir süredir böyle bir şey arıyordum. Bu, küçük web siteleriyle birlikte gayet iyi çalışıyor!
Dieterg

1
@DieterGoetelen hoş geldiniz! Son zamanlarda MongoDB benzeri bir sözdizimi olan ve Node.js ve ötesinde bağlamalara sahip daha güçlü bir EJDB kullanmaktan oldukça memnun kaldım github.com/Softmotions/ejdb-node
Radek


5

Belki de LocallyDB'yi denemelisiniz , javascript koşullu ifadeye benzer gelişmiş seçim sistemine ek olarak kullanımı kolay ve hafiftir ...

https://github.com/btwael/locallydb


Teşekkürler Wael Amine Boutglay LocallyDB az önce js düğümü için işimi yaptı. Daha önce php ile çalışıyordum ve kendi düz dosya veritabanımı oluşturdum github.com/sguha-work/LifeDB
Angshu Guha

LocallyDB, yerel olarak test etmek için iyidir ! Lütfen blok IO kullandığını unutmayın. Do not üretimde kullanmak.
Junle Li

1
Bağlantı çalışmıyor. Bu bir alan park etme sayfası.
rsp

@rsp bağlantısı düzeltildi, kontrol edin http://boutglay.com/locallydb/
Wael Boutglay

En son taahhüt 1 Ağu 2016.
Deilan


1

Bazen demo veya test projeleri için "küçük" bir veritabanına ihtiyaç duyduğum ve mongoDB veya başka bir gerçek veritabanına bağımlı olmak istemediğimden, bahsettiğiniz bazı şeylerle başa çıkmak için jaguarDb yazdım.

https://github.com/hectorcorrea/jaguarDb


2
En son taahhüt 3 Nisan 2013.
Deilan
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.