4

私はnedbの初心者です。これは、sql コミュニティ向けの sqlite のようなものですが、node.js コミュニティ向けです。[ https://github.com/louischatriot/nedb]

1 つのデータベース ファイル (データストア) に複数のコレクションを含めることは可能ですか。ある場合は、その方法に関するコード サンプルをいくつか示していただけますか? 私はこれを試しました:

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...");});
    });

しかし、「undefined のメソッド挿入を呼び出せません」というメッセージが表示されます。レコードを挿入するときにコレクション名 (todols) を呼び出すと、データストア (db.user) に別のコレクションを追加できるようになると思っていましたが、間違っていました。

したがって、1 つのデータストアに複数のコレクションを含めることは可能ですか、それともコレクションごとにデータストアを作成する必要がありますか? 可能であれば、これを達成する方法を知っている人はいますか? ありがとうございました...

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 に答える