mongoose 스키마 생성
몽구스로 시작했어요.샘플 데이터로 스키마와 db를 생성하는 mongoose를 사용한 생성 스크립트가 있습니다.
이제 저는 실제 신청서를 작성합니다.응용프로그램이 실행될 때마다 스키마 개체를 만들어야 합니까, 아니면 이미 사용할 수 있습니까?
즉, db에 액세스하기 위해 몽구스를 사용하는 모든 앱에서 또는 처음으로 이 코드를 실행해야 합니까?
var Comments = new Schema({
title : String
, body : String
, date : Date
});
세터/유효성 검사 등이 있는 경우 답변이 어떻게 변경됩니까?
하나는 정의합니다.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
이 코드를 사용하기 전에 예외가 발생합니다.
그러나 이 모든 것은 하나의 노드 세션 내에서만 작동합니다. 따라서 만약 당신이 다른 노드 앱을 실행하고 있다면, 그것에 대한 액세스가 필요합니다.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();
지정된 노드 세션에 대한 모든 스키마를 초기화합니다.
앱의 스키마를 mongoose에 등록하려면 앱을 실행할 때마다 이 초기화 코드를 실행해야 합니다.
앱이 종료될 때 mongoose는 스키마를 저장하지 않습니다.따라서 다음에 스키마를 사용하는 앱을 실행할 때 스키마를 다시 등록해야 합니다.
그러나 그렇게 하도록 앱을 설정하는 것은 꽤 쉽습니다.
몽구스에서 스키마를 초기화하는 방법을 보여주는 코드에 대한 두 개의 링크가 있습니다.첫 번째는 자바스크립트, 두 번째는 커피스크립트입니다.
https://github.com/fbeshears/register_models
https://github.com/fbeshears/register_coffee_models
자바스크립트 데모는 하나의 앱에 불과합니다.
CoffeeScript 코드에는 두 개의 별도 앱이 있습니다.첫 번째는 MongoDB로 문서를 저장하고, 두 번째는 첫 번째 앱에서 저장한 문서를 찾아 표시합니다.
언급URL : https://stackoverflow.com/questions/10081611/mongoose-schema-creation
'source' 카테고리의 다른 글
iOS11/Xcode 9에서 TIC 읽기 상태 1:57은 무엇입니까? (0) | 2023.05.17 |
---|---|
#c#에서 디버그가 아닌 경우? (0) | 2023.05.17 |
코드가 있는 어셈블리의 경로를 가져오려면 어떻게 해야 합니까? (0) | 2023.05.17 |
WPF: 콘텐츠 제어를 위한 데이터 템플릿 트리거를 설정하는 방법은 무엇입니까? (0) | 2023.05.17 |
Python: 목록에서 판다 데이터 프레임 만들기 (0) | 2023.05.17 |