4

我是 nedb 的新手。它有点像 sqlite 对于 sql 社区但对于 node.js 社区。[ https://github.com/louischatriot/nedb]

我想问一个数据库文件(数据存储区)中是否可以有多个集合。如果有,请给我看一些关于如何去做的代码示例?我试过这个:

var Datastore = require('nedb'),
    databaseURL="tudls.db",
    db = new Datastore({filename: databaseURL, autoload: true});

这将创建一个名为 db 的数据存储。从文档中,我看到 nedb 类似于 mongo。所以要插入一条记录,我试过这个:

 app.post('/todos', function(req, res){
        var task = req.body.text;
        db.todols.insert({text: task, done: false}, function(err, saved){
            if(err||!saved){
                res.send("Task not saved...");
            }
            res.send("Task saved...");});
    });

但是,我得到一个“无法调用未定义的方法插入”。我认为如果我在插入记录时调用集合名称(todols),它会起作用,以便我可以继续将另一个集合添加到数据存储区(db.user),但我错了。

因此,是否可以在单个数据存储中拥有多个集合,或者我是否可以为每个集合拥有一个数据存储?如果可能的话,有谁知道如何实现这一目标?谢谢...

4

2 回答 2

10

这确实是对 MongoDB 的“精简”解释,因此在全功能产品中确实不存在相同的“数据库”和“集合”概念,并且省略了许多其他功能。

如果您希望事物看起来好像确实有各种“集合”,那么按照手册页中的建议,您可以DataStore在结构中定义各种对象以使事物看起来像这样:

var db = {};
db.todols = new DataStore('/path/to/todols.db');
db.other = new DataStore('/path/to/other.db');

这看起来你有“集合”,实际上是“neDB”,实际上只是DataStore对象。

于 2014-05-31T05:05:02.143 回答
0

//创建多个集合

var Datastore = require('nedb');
var db = {};
db.users = new Datastore('path/to/users.db');
db.robots = new Datastore('path/to/robots.db');

//访问它

db.users.loadDatabase();
db.robots.loadDatabase();

//查找一些文档

db.users.find({name: "john"}, function (err,docs){ console.log(docs); }); 
于 2021-05-09T07:49:02.277 回答