sql >> データベース >  >> NoSQL >> MongoDB

マングーススキーマの作成

    1つはSchemaを定義します そのため、アプリケーションは、MongoDBからJavaScriptオブジェクトにデータをマッピングする方法を理解しています。 Schema アプリケーションの一部です。 何もありません データベースと関係があります。データベースをJavaScriptオブジェクトにマップするだけです。そうです-素晴らしいマッピングが必要な場合は、このコードをすべてで実行する必要があります それを必要とするアプリケーション。ゲッター/セッター/検証などにも適用されます。

    ただし、これを行うことに注意してください:

    var mongoose = require('mongoose');
    var Schema = mongoose.Schema; // <-- EDIT: missing in the original post
    var Comments = new Schema({
        title     : String
      , body      : String
      , date      : Date
    });
    mongoose.model("Comments", Comments);
    

    Schemaを登録します グローバルに。つまり、実行しているアプリケーションが外部モジュールを使用している場合、このモジュールでは単純に使用できます

    var mongoose = require('mongoose');
    var Comments = mongoose.model("Comments");
    Comments.find(function(err, comments) {
        // some code here
    });
    

    (実際にはSchemaを登録する必要があることに注意してください このコードを使用する前に、そうでない場合は例外がスローされます。

    ただし、これはすべて1つのノードセッション内でのみ機能するため、Schemaへのアクセスが必要な別のノードアプリを実行している場合 、次に登録コードを呼び出す必要があります。したがって、すべてのスキーマを個別のファイル(comments.jsなど)で定義することをお勧めします。 このように見えるかもしれません

    var mongoose = require('mongoose');
    var Schema = mongoose.Schema; // <-- EDIT: missing in the original post
    
    module.exports = function() {
        var Comments = new Schema({
            title     : String
          , body      : String
          , date      : Date
        });
        mongoose.model("Comments", Comments);
    };
    

    次に、ファイルmodels.jsを作成します このように見えるかもしれません

    var models = ['comments.js', 'someothermodel.js', ...];
    
    exports.initialize = function() {
        var l = models.length;
        for (var i = 0; i < l; i++) {
            require(models[i])();
        }
    };
    

    ここで、require('models.js').initialize();を呼び出します。 特定のノードセッションのすべてのスキーマを初期化します。



    1. MongoDBでSQLLIKEステートメントを使用する方法

    2. MongoDBで日付をフォーマットする方法

    3. redisに保存できる最大値のサイズはどれくらいですか?

    4. ライブのMongoDBデータを参照またはクエリするにはどうすればよいですか?