Node 有没有类似 MongoDB 但可以存为项目下一个文件的数据库?
发布于 2年前 作者 jiyinyiyong 1167 次浏览

看到 LevelDB 的新闻, 发现挺好玩的键值对数据库 http://dailyjs.com/2013/05/03/leveldb-and-node-2/ 我尝试了下 levelup, 感觉就跟玩 JSON 或者 localStorage 似的, 几行代码就搞定了 不过 API 相对简单, 没有索引功能, MongoDB 能轻松做的事情做不了 挺想有个工具, 可以存放在项目路径下, 也能检索, 也支持大数据量的. 不知道现成的工具有没有? 如果用 JSON 自己实现个带索引的, 性能上会不会很差呀?

23 回复

新浪微博@题叶是楼主吗

新浪微博@题叶是楼主吗

新浪微博@题叶是楼主吗

是的… 我只回一次…

也应该是这样的东西… 不知道 JS 支持好不好, 模块两年没更新 - -! https://github.com/grumdrig/node-sqlite

@jiyinyiyong 哎呀 不知道怎么出这么多

是在新浪微群看到的

同样的头像

猿粪吶

@douya0808 ToT 看到才是正常的, 我到处编程相关话题上去挂头像 特别是 Node, CoffeeScript, Haskell 这些话题

@youxiachai 要糟… 还是 SQL 语法,最讨厌了。用了的话 JS 操作键值对的方便就没了。

@jiyinyiyong 话说,其实,redis 不就是很好用?

@youxiachai redis 不能存为项目下的一个文件。

@jiyinyiyong sqlite 很老的SQL的东西了。

@leapon 原来是作为一个文件…感觉真的除了sqlite 还真没有这样的东西了,java 倒是还有hsqldb,都是sql 东西…键值对的真没见过…

SQLite客户端用滴

不用这么激动吧 ……

https://github.com/louischatriot/nedb 终于让我给盼到了, Up!

// In-memory only datastore
var Datastore = require('nedb')
  , db = new Datastore();

// Persistent datastore
var Datastore = require('nedb')
  , db = new Datastore({ filename: 'path/to/datafile' });

// Persistent datastore for a Node Webkit app called 'nwtest'
// For example on Linux, the datafile will be ~/.config/nwtest/nedb-data/something.db
var Datastore = require('nedb')
  , db = new Datastore({ filename: 'something.db', nodeWebkitAppName: 'nwtest' });


db.loadDatabase(function (err) {    // Callback is optional
  // err is the error, if any
});


// Of course you can create multiple datastores if you need several
// collections. For example:
db = {};
db.users = new Datastore('path/to/users.db');
db.robots = new Datastore('path/to/robots.db');

// You need to load each database (here we do it asynchronously)
db.users.loadDatabase();
db.robots.loadDatabase();

刚看到边上的帖子, 话说这东西能不能拿应用平台上去代替 MongoDB 的?

@jiyinyiyong 不大现实吧…**NeDB is not intended to be a replacement of large-scale databases such as MongoDB! **

@youxiachai 小应用小应用, 大的场景实在不指望存一个文件搞定

nedb 这个东西不错,对小的CRUD应用足够了。

@jiyinyiyong nedb适用于客户端产品,或者基本没并发的场景.

回到顶部