[MONGODB] MongoDB를에 수집 당 하나 이상의 스키마를 사용하여
MONGODBMongoDB를에 수집 당 하나 이상의 스키마를 사용하여
나는 MongoDB의에서 수집 당 하나 이상의 스키마를 사용하고 싶었, 그것을 사용하는 방법 ....? 나는 그것을 실행하려고하면 그것은 나에게 오류를 제공합니다 : 오류:
Heres는 내 schema.js
var mongoose = require('mongoose');
var Schema = mongoose.Schema
, ObjectId = Schema.ObjectId;
var checkInInfoSchema= new Schema({
name:String,
loginSerialId:Number
});
var loginUserSchema = new Schema({
sn : { type: Number, unique:true }
,uname: {type:String, unique:true}
,pass:String
});
var registerUserSchema = new Schema({
sn : { type: Number, unique:true }
, name: String //his/her name
,pass:String,
companyKey:{type:String},
uname:{type:String,unique:true}
});
var checkInOutSchema = new Schema({
uname: String
,companyKey:String
,task:String
,inTime:String
,outTime:String
,date:{type:String}
,serialId:{type:Number,unique:true}
,online:Boolean
});
//Different schema for same collection "allUsers"
var allUser=mongoose.model('allUsers',loginUserSchema);
var registerUser=mongoose.model('allUsers',registerUserSchema);
//Different schema for same collection "checkInOut"
var checkInOut=mongoose.model('checkInOut',checkInOutSchema);
var checkInInfo=mongoose.model('checkInOut',checkInInfoSchema);
module.exports={
allUser:allUser,
registerUser:registerUser,
checkInOut:checkInOut,
checkInInfo:checkInInfo
};
해결법
-
==============================
1.몽구스에서는이 같은 작업을 수행 할 수 있습니다 :
몽구스에서는이 같은 작업을 수행 할 수 있습니다 :
var users = mongoose.model('User', loginUserSchema, 'users'); var registerUser = mongoose.model('Registered', registerUserSchema, 'users');
이 두 스키마는 '사용자의 컬렉션에 저장합니다.
http://mongoosejs.com/docs/api.html#index_Mongoose-model 또는 당신은 도움이 될 다음의 요점을 볼 수 있습니다 자세한 내용은 당신은 설명서를 참조 할 수 있습니다.
-
==============================
2.내가 선택한 답변을 시도했지만 특정 모델 객체에 쿼리 할 때, 그것은 모두 스키마의 데이터를 검색합니다. 내가 판별 수익률에게 더 나은 솔루션을 사용하여 생각 그래서 :
내가 선택한 답변을 시도했지만 특정 모델 객체에 쿼리 할 때, 그것은 모두 스키마의 데이터를 검색합니다. 내가 판별 수익률에게 더 나은 솔루션을 사용하여 생각 그래서 :
const coordinateSchema = new Schema({ lat: String, longt: String, name: String }, {collection: 'WeatherCollection'}); const windSchema = new Schema({ windGust: String, windDirection: String, windSpeed: String }, {collection: 'WeatherCollection'}); //Then define discriminator field for schemas: const baseOptions = { discriminatorKey: '__type', collection: 'WeatherCollection' }; //Define base model, then define other model objects based on this model: const Base = mongoose.model('Base', new Schema({}, baseOptions)); const CoordinateModel = Base.discriminator('CoordinateModel', coordinateSchema); const WindModel = Base.discriminator('WindModel', windSchema); //Query normally and you get result of specific schema you are querying: mongoose.model('CoordinateModel').find({}).then((a)=>console.log(a));
출력 예 :
{ __type: 'CoordinateModel', // discriminator field _id: 5adddf0367742840b00990f8, lat: '40', longt: '20', name: 'coordsOfHome', __v: 0 },
from https://stackoverflow.com/questions/14453864/use-more-than-one-schema-per-collection-on-mongodb by cc-by-sa and MIT license
'MONGODB' 카테고리의 다른 글
[MONGODB] MongoDB를은 다음 몽고 쉘에서 ObjectId가에서 날짜 범위 쿼리를 수행 (0) | 2019.12.22 |
---|---|
[MONGODB] MongoDB의의 열 가장 높은 값을 얻기 (0) | 2019.12.22 |
[MONGODB] MongoDB를의 bind_ip은 설정하지 않으면 0.0.0.0으로 작동하지 않습니다 (0) | 2019.12.22 |
[MONGODB] 명령을 삽입하여 MongoDB의 "upsert"옵션이 있습니까? (0) | 2019.12.22 |
[MONGODB] 어떻게 useMongoClient (몽구스 4.11.0)를 설정하는 방법? (0) | 2019.12.22 |