sql >> Databáze >  >> NoSQL >> MongoDB

vytvoření mangoose schématu

Jeden definuje Schema takže aplikace rozumí tomu, jak mapovat data z MongoDB do objektů JavaScriptu. Schema je součástí aplikace. Nemá nic co do činění s databází. Mapuje pouze databázi do objektů JavaScriptu. Takže ano – pokud chcete mít pěkné mapování, musíte tento kód spustit v každém aplikace, která to potřebuje. Týká se také getters/setters/validations/atd.

Všimněte si však, že takto:

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);

zaregistruje Schema globálně. To znamená, že pokud vámi spuštěná aplikace používá nějaký externí modul, pak v tomto modulu můžete jednoduše použít

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

(Všimněte si, že ve skutečnosti musíte zaregistrovat Schema před použitím tohoto kódu, jinak bude vyvolána výjimka).

To vše však funguje pouze v rámci jedné relace uzlu, takže pokud používáte jinou aplikaci uzlu, která potřebuje přístup ke Schema , pak musíte zavolat registrační kód. Je tedy dobré definovat všechna schémata v samostatných souborech, například comments.js může vypadat takto

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

poté vytvořte soubor models.js který může vypadat takto

var models = ['comments.js', 'someothermodel.js', ...];

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

Nyní se volá require('models.js').initialize(); inicializuje všechna vaše schémata pro danou relaci uzlu.



  1. Skript Redis lua nefunguje

  2. Klíčové věci ke sledování v MongoDB

  3. MongoDB sort()

  4. Připojte se k AWS ElastiCache pomocí In-Transit Encryption + Auth z jiného klienta než redis-cli+stunnel