본문으로 바로가기

mongoose Schema option 이용하기

category DB, ORM/🍃mongoose, pymongo 2020. 7. 23. 18:28

https://mongoosejs.com/docs/guide.html#options

 

스키마를 정의함에 있어 다음과 같이 옵션을 줄 수 있습니다.

new Schema({..}, options);

// or

var schema = new Schema({..});
schema.set(option, value);

 

 

모든 옵션은 위 공식 문서에서 살펴보시고, 저는 이번에 사용할 것만 추려내보겠습니다.

(나중에 shardkey나 writeconcern은 이용해야 할 때 추가로 작성하기로 합니다...)

 

 

 

id

mongodb에서는 각 도큐먼트에 식별자인 _id를 자동으로 붙이는데 option에서 id를 false로 주면 주지 않습니다.

// default behavior
var schema = new Schema({ name: String });
var Page = mongoose.model('Page', schema);
var p = new Page({ name: 'mongodb.org' });
console.log(p.id); // '50341373e894ad16347efe01'

// disabled id
var schema = new Schema({ name: String }, { id: false });
var Page = mongoose.model('Page', schema);
var p = new Page({ name: 'mongodb.org' });
console.log(p.id); // undefined

 

timestamps

createdAt, updatedAt 필드를 자동 생성합니다.

const thingSchema = new Schema({..}, { timestamps: true });
const Thing = mongoose.model('Thing', thingSchema);
const thing = new Thing();
await thing.save(); // `created_at` & `updatedAt` will be included

 

만약 속성명을 바꾸고 싶다면 다음과 같이 작성하면 됩니다.

{ timestamps: { createdAt: 'created_at' } }

 

 

Capped

https://darrengwon.tistory.com/222?category=870801

capped는 위 포스트에서도 살펴본 바 있습니다.

 

따라서, 간단히 생성하는 방법에 대해서만 언급하겠습니다. 

 

capped: 해당 컬렉션의 용량 한계. 단위는 bytes입니다.

max : maximum number of documents (용량이 아니라 도큐먼트 갯수였네요)

new Schema({..}, { capped: 1024 });
new Schema({..}, { capped: { size: 1024, max: 1000, autoIndexId: true } });

 

 

 

 


darren, dev blog
블로그 이미지 DarrenKwonDev 님의 블로그
VISITOR 오늘 / 전체