[MONGODB] 다른 모델에 정의 몽구스 데이터베이스의 스키마를 얻는 방법
MONGODB다른 모델에 정의 몽구스 데이터베이스의 스키마를 얻는 방법
이것은 내 폴더 구조입니다 :
+-- express_example
|---- app.js
|---- models
|-------- songs.js
|-------- albums.js
|---- and another files of expressjs
파일 songs.js에 내 코드
var mongoose = require('mongoose')
, Schema = mongoose.Schema
, ObjectId = Schema.ObjectId;
var SongSchema = new Schema({
name: {type: String, default: 'songname'}
, link: {type: String, default: './data/train.mp3'}
, date: {type: Date, default: Date.now()}
, position: {type: Number, default: 0}
, weekOnChart: {type: Number, default: 0}
, listend: {type: Number, default: 0}
});
module.exports = mongoose.model('Song', SongSchema);
그리고 여기에 파일 albums.js 내 코드입니다
var mongoose = require('mongoose')
, Schema = mongoose.Schema
, ObjectId = Schema.ObjectId;
var AlbumSchema = new Schema({
name: {type: String, default: 'songname'}
, thumbnail: {type:String, default: './images/U1.jpg'}
, date: {type: Date, default: Date.now()}
, songs: [SongSchema]
});
module.exports = mongoose.model('Album', AlbumSchema);
어떻게 할 수 albums.js이 SongSchema을 알고있는 것은 AlbumSchema 정의 할
해결법
-
==============================
1.당신은 몽구스와 다른 곳에서 직접 정의 된 모델을 얻을 수 있습니다 :
당신은 몽구스와 다른 곳에서 직접 정의 된 모델을 얻을 수 있습니다 :
require('mongoose').model(name_of_model)
이 작업을 수행 할 수 albums.js에 예에서 스키마를 얻으려면 :
var SongSchema = require('mongoose').model('Song').schema
-
==============================
2.등록 몽구스 모델의 스키마를 얻으려면, 당신은 특히 스키마에 접근 할 필요가 :
등록 몽구스 모델의 스키마를 얻으려면, 당신은 특히 스키마에 접근 할 필요가 :
var SongSchema = require('mongoose').model('Song').schema;
-
==============================
3.
var SongSchema = require('mongoose').model('Song').schema;
당신의 albums.js 코드의 위의 라인은 확실히 작동합니다.
-
==============================
4.몽구스의 작동 방식의 깊은 측면과 같은 익숙하지 않은 다른 사람을 위해, 기존의 응답 혼동 될 수있다.
몽구스의 작동 방식의 깊은 측면과 같은 익숙하지 않은 다른 사람을 위해, 기존의 응답 혼동 될 수있다.
다음은 일반적인 상황에서 오는 광범위한 청중에 액세스 할 수있는 다른 파일에서 스키마를 가져 일반화 된 구현 예이다.
const modelSchema = require('./model.js').model('Model').schema
여기에 문제의 특정 사건에 대한 수정 된 버전 (이 albums.js 내부에서 사용된다)이다.
const SongSchema = require('./songs.js').model('Song').schema
이로부터, 나는 처음 액세스를보고 하나 일반적으로 당신이 지금 특별히 그 모델의 스키마에 액세스이 경우를 제외하고, 모델을 필요로 가겠어요 어떻게 파일을 요구할 수 있습니다.
다른 응답 변수 선언 내의 몽구스 필요하고 그 CONST 몽구스가 = ( '몽구스')를 필요로 변수를 선언 등을 통해 이전 몽구스을 요구하는 통상 발견 예 거스르는; 다음 같은 몽구스를 사용하여. 이러한 유스 케이스 나에게 지식 현명한 접근하지 않았다.
당신은 일반적으로 다음 모델의 스키마 속성을 통해 스키마를 참조하는 것처럼 당신은 모델을 요구할 수 있습니다.
const mongoose = require('mongoose'); // bring in Song model const Song = require('./songs.js'); const AlbumSchema = new Schema({ // access built in schema property of a model songs: [Song.schema] });
from https://stackoverflow.com/questions/8730255/how-to-get-schema-of-mongoose-database-which-defined-in-another-model by cc-by-sa and MIT license
'MONGODB' 카테고리의 다른 글
[MONGODB] 몽고는 : 특정 필드가없는 항목을 찾을 수 (0) | 2019.12.28 |
---|---|
[MONGODB] 응용 프로그램에서 불을 몽구스 모든 쿼리를 기록 (0) | 2019.12.28 |
[MONGODB] 동기화 MongoDB를 통해 ssh를 (0) | 2019.12.28 |
[MONGODB] 몽구스의 무게와 전체 텍스트 검색 (0) | 2019.12.28 |
[MONGODB] 나는 몽고 OBJECTID의 생성 날짜를 추출하려면 어떻게 (0) | 2019.12.28 |