본문 바로가기

개발

[mongoose] static vs method 사용

METHOD

var AnimalSchema = new Schema({
    name: String
  , type: String
});

AnimalSchema.methods.findSimilarType = function findSimilarType (cb) {
  return this.model('Animal').find({ type: this.type }, cb);
};
var Animal = mongoose.model('Animal', AnimalSchema);
var dog = new Animal({ name: 'Rover', type: 'dog' });

dog.findSimilarType(function (err, dogs) {
  if (err) return ...
  dogs.forEach(..);
})​

Animal 인스턴스 생성 후 method를 사용 할 수 있습니다.

 

STATIC

AnimalSchema.statics.search = function search (name, cb) {
  return this.where('name', new RegExp(name, 'i')).exec(cb);
}

Animal.search('Rover', function (err) {
  if (err) ...
})

정적은 메서드와 거의 동일하지만 모델에 직접 존재하는 함수를 정의할 수 있습니다.

인스턴스 생성 하지 않을 때에 사용 합니다.

'개발' 카테고리의 다른 글

IP, TCP, UDP 프로토콜  (0) 2023.06.20
TDD란  (0) 2023.06.05
GIT 설치 및 명령어  (0) 2023.05.17
마이크로서비스 아키텍쳐[MSA] 개념  (0) 2021.02.27
개발자가 되기 위한 로드맵  (0) 2021.02.19