복붙노트

[MONGODB] 어떻게 동적으로 몽구스 스키마를 만드는 방법?

MONGODB

어떻게 동적으로 몽구스 스키마를 만드는 방법?

나는 MongoDB를하고 몽구스와 Node.js를에서 작동하는 응용 프로그램을 가지고있다. 내 응용 프로그램은 단순히 / 삭제 / 편집 폼 데이터를 전송하고, 나는 그런 몽구스 모델을 가지고 :

var mongoose = require('mongoose');

module.exports = mongoose.model('appForm', {
    User_id : {type: String},
    LogTime : {type: String},
    feeds : [   
    {
        Name: {type: String},
        Text : {type: String},
    }
    ]
});

그것은 잘 작동합니다!

지금, 나는 사용자가 구성하고 그 안에 텍스트를 입력하고 게시 할 필드 (또는 필드)를 추가 할 수 있도록 폼에 기능을 추가하고 싶습니다. 클라이언트 측에서 그 동적 기능을 생성하는 것은 문제가되지 않습니다하지만 내 mongoose.model가 제대로 구성되어야 함을 이해합니다. 내 질문은 : 어떻게 스키마를 몽구스 해당 변수 값 (동적으로 생성 된 폼 데이터 이름과 텍스트)을 추가하는 방법은 무엇입니까?

나는 엄격한 사용하는 것을 볼 수 : 거짓과 Schema.Types.Mixed이 좋습니다. 그러나, 나는 알아낼 수 없습니다 ... 나는 시도하는 것 :

var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var feedSchema = new Schema({strict:false});

module.exports = mongoose.model('appForm', feedSchema);

모든 팁? 사전에 감사합니다!

해결법

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

    1.스키마 생성자에 두 번째 매개 변수로 제공하여 기존의 스키마 정의에 잘못된 옵션 : 엄격한 적용 :

    스키마 생성자에 두 번째 매개 변수로 제공하여 기존의 스키마 정의에 잘못된 옵션 : 엄격한 적용 :

    var appFormSchema = new Schema({
        User_id : {type: String},
        LogTime : {type: String},
        feeds : [new Schema({
            Name: {type: String},
            Text : {type: String}
        }, {strict: false})
        ]
    }, {strict: false});
    
    module.exports = mongoose.model('appForm', appFormSchema);
    

    당신은 당신이 혼합 사용 할 수있는 사용자들은 완전히 스키마와 같은 피드를 마칠 경우 :

    var appFormSchema = new Schema({
        User_id : {type: String},
        LogTime : {type: String},
        feeds : [Schema.Types.Mixed]
    }, {strict: false});
    
    module.exports = mongoose.model('appForm', appFormSchema);
    
  2. from https://stackoverflow.com/questions/28166463/how-to-create-mongoose-schema-dynamically by cc-by-sa and MIT license