[MONGODB] 어떻게 몽구스 모델의 메소드를 정의합니까?
MONGODB어떻게 몽구스 모델의 메소드를 정의합니까?
내 locationsModel 파일 :
mongoose = require 'mongoose'
threeTaps = require '../modules/threeTaps'
Schema = mongoose.Schema
ObjectId = Schema.ObjectId
LocationSchema =
latitude: String
longitude: String
locationText: String
Location = new Schema LocationSchema
Location.methods.testFunc = (callback) ->
console.log 'in test'
mongoose.model('Location', Location);
를 호출하려면, 내가 사용하고 있습니다 :
myLocation.testFunc {locationText: locationText}, (err, results) ->
하지만 오류가 발생합니다 :
TypeError: Object function model() {
Model.apply(this, arguments);
} has no method 'testFunc'
해결법
-
==============================
1.당신은 당신이 클래스 또는 인스턴스 메소드를 정의하기 위해 찾고 있는지 여부를 지정하지 않았습니다. 다른 사람들이 인스턴스 방법을 적용했기 때문에, 다음은 클래스 / 정적 메서드를 정의하는 것입니다 방법은 다음과 같습니다
당신은 당신이 클래스 또는 인스턴스 메소드를 정의하기 위해 찾고 있는지 여부를 지정하지 않았습니다. 다른 사람들이 인스턴스 방법을 적용했기 때문에, 다음은 클래스 / 정적 메서드를 정의하는 것입니다 방법은 다음과 같습니다
animalSchema.statics.findByName = function (name, cb) { return this.find({ name: new RegExp(name, 'i') }, cb); }
-
==============================
2.흠 - 난 당신의 코드를보다이 같은보고해야한다고 생각 :
흠 - 난 당신의 코드를보다이 같은보고해야한다고 생각 :
var mongoose = require('mongoose'), Schema = mongoose.Schema, ObjectId = Schema.ObjectId; var threeTaps = require '../modules/threeTaps'; var LocationSchema = new Schema ({ latitude: String, longitude: String, locationText: String }); LocationSchema.methods.testFunc = function testFunc(params, callback) { //implementation code goes here } mongoose.model('Location', LocationSchema); module.exports = mongoose.model('Location');
그런 다음 호출 코드는 위의 모듈을 필요로하고이 같은 모델을 인스턴스화 할 수 있습니다 :
var Location = require('model file'); var aLocation = new Location();
이 같은 당신의 방법에 액세스 :
aLocation.testFunc(params, function() { //handle callback here });
-
==============================
3.방법에 몽구스의 문서를 참조하십시오
방법에 몽구스의 문서를 참조하십시오
var animalSchema = new Schema({ name: String, type: String }); animalSchema.methods.findSimilarTypes = function (cb) { return this.model('Animal').find({ type: this.type }, cb); }
-
==============================
4.
Location.methods.testFunc = (callback) -> console.log 'in test'
해야한다
LocationSchema.methods.testFunc = (callback) -> console.log 'in test'
방법은 스키마의 일부가 될 수 있습니다. 아니 모델.
from https://stackoverflow.com/questions/7419969/how-do-i-define-methods-in-a-mongoose-model by cc-by-sa and MIT license
'MONGODB' 카테고리의 다른 글
[MONGODB] MongoDB를 C #을 드라이버 - 바인딩에 필드를 무시 (0) | 2019.12.22 |
---|---|
[MONGODB] MongoDB를 맵리 듀스에서 어떻게 값 개체를 평평하게 할 수 있습니까? (0) | 2019.12.22 |
[MONGODB] 몽고없이 유성 (0) | 2019.12.22 |
[MONGODB] MongoDB의 연결을 처리하는 올바른 방법은 무엇입니까? (0) | 2019.12.22 |
[MONGODB] 공식 C #을 드라이버를 사용하여 MongoDB에 삽입 (0) | 2019.12.22 |