복붙노트

[MONGODB] 몽구스 스키마 생성

MONGODB

몽구스 스키마 생성

난 그냥 몽구스 시작했습니다. 나는 샘플 데이터 스키마 및 DB를 생성 몽구스와 작성 스크립트가 있습니다.

지금은 실제 응용 프로그램을 작성. 나는 때마다 내 응용 프로그램 실행을 스키마 객체를 생성해야하거나 어떻게 든 이미 사용할 수 있습니까?

다른 말은 내가 사용이 DB하거나 처음에 액세스 할 수 몽구스하는 모든 응용 프로그램에서이 코드를 실행해야합니까 :

var Comments = new Schema({
    title     : String
  , body      : String
  , date      : Date
});

어떻게 대답 변화한다면 나는이 세터 / 검증 / 등?

해결법

  1. ==============================

    1.응용 프로그램은 자바 스크립트 객체로 MongoDB의 데이터를 매핑하는 방법을 이해하고, 그래서 하나는 스키마를 정의합니다. 스키마는 응용 프로그램의 일부입니다. 그것은 데이터베이스와는 아무 상관이 없습니다. 그것은 단지 자바 스크립트 객체로 데이터베이스를 매핑합니다. 그래서 네 - 당신이 좋은지도를 원한다면 당신은 그것을 필요로하는 모든 응용 프로그램에서이 코드를 실행해야합니다. 또한 등 게터 / 세터 / 검증 / 적용됩니다.

    응용 프로그램은 자바 스크립트 객체로 MongoDB의 데이터를 매핑하는 방법을 이해하고, 그래서 하나는 스키마를 정의합니다. 스키마는 응용 프로그램의 일부입니다. 그것은 데이터베이스와는 아무 상관이 없습니다. 그것은 단지 자바 스크립트 객체로 데이터베이스를 매핑합니다. 그래서 네 - 당신이 좋은지도를 원한다면 당신은 그것을 필요로하는 모든 응용 프로그램에서이 코드를 실행해야합니다. 또한 등 게터 / 세터 / 검증 / 적용됩니다.

    이 일을하지만합니다 :

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

    스키마 globaly을 등록합니다. 일부 외부 모듈을 사용하고 실행중인 응용 프로그램이,이 모듈에서 간단히 사용할 수 있는지 있음이 수단

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

    (실제로이 코드를 사용하기 전에 스키마를 등록해야합니다, 그렇지 않으면 예외가 발생합니다).

    당신이 당신은 등록 코드를 호출 할 필요가, 스키마에 대한 액세스를 필요로 다른 노드의 응용 프로그램을 실행하는 그래서 그러나이 모든 하나 개의 노드 만 세션 내에서 작동합니다. 그래서 예를 들어 comments.js는 다음과 같이 5 월, 별도의 파일에있는 모든 스키마를 정의하는 좋은 아이디어이다

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

    이제 ( 'models.js')을 필요로 전화 (초기화).; 주어진 노드 세션에 대한 스키마를 모두 초기화됩니다.

  2. ==============================

    2.이 초기화 코드 당신이 몽구스와 앱의 스키마를 등록하여 응용 프로그램을 실행할 때마다 실행할 필요가 없습니다.

    이 초기화 코드 당신이 몽구스와 앱의 스키마를 등록하여 응용 프로그램을 실행할 때마다 실행할 필요가 없습니다.

    앱 끝, 당신의 스키마 (들) 몽구스 저장하지 않는 경우. 그래서, 당신은 스키마를 사용하는 응용 프로그램을 실행할 때, 당신은 다시 스키마 (들)를 등록해야합니다.

    그러나, 그렇게하기 위해 응용 프로그램을 설정하는 매우 간단합니다.

    여기에 하나 몽구스의 스키마를 초기화하는 방법을 보여줍니다 코드에 두 개의 링크가 있습니다. 첫 번째, 두 번째는 커피 스크립트에 자바 스크립트입니다.

    https://github.com/fbeshears/register_models

    https://github.com/fbeshears/register_coffee_models

    자바 스크립트 데모는 하나의 응용 프로그램입니다.

    커피 스크립트 코드는 두 개의 응용 프로그램이 있습니다. MongoDB를 가진 첫 번째 문서를 저장, 두 번째 찾아 표시하고 첫 번째 응용 프로그램에 의해 저장된 문서.

  3. from https://stackoverflow.com/questions/10081611/mongoose-schema-creation by cc-by-sa and MIT license