我已经将Schema定义如下,
Event.js
var mongoose = require('mongoose');
var eventSchema = new mongoose.Schema({
description: {
type: String
},
end_time: {
type: Date
},
start_time: {
type: Date
},
name: {
type: String
},
place: {
type: mongoose.Schema.Types.ObjectId,
ref: 'Location'
}
});
eventSchema.index({name: 'text'});
var Event = mongoose.model('events', eventSchema);
module.exports= Event;
使用以下一种方法,
let configuration = require('../../commonservices/service');
var eventModel = require('./models/Event');
var dbHelper = require('../../commonservices/dbHelper');
module.exports = {
getEventsByCountry : function(event,context,callback){
var searchString = event.queryStringParameters.searchParam?event.queryStringParameters.searchParam:'';
var countryString = event.queryStringParameters.country?event.queryStringParameters.country:'';
dbHelper.query(eventModel, {$text: {$search: searchString},'place.location.country': countryString},function(error,data){
callback(data);
});
}
};
第一次执行方法时,当我第二次调用时发生以下错误,
{“errorMessage”:“加载时出错 usersCreate “ ”ERRORTYPE“: ”MongooseError“, ”堆栈跟踪“:[” OverwriteModelError: 编译后无法覆盖
events
模型。“,”在Mongoose.model (E:\ TV-81 \服务\ node_modules \猫鼬\ lib中\ index.js:376:13)“
答案 0 :(得分:0)
当Schema文件执行多次一次时,通常会触发此错误。
在mongoose连接之后需要所有模式文件,然后像这样使用它
Goal
在app.js中运行以下代码或在连接到mongodb后立即运行。这将加载所有模型一次,然后您可以使用about about snippet
中提到的每个模型 mongoose = require('mongoose')
eventModel = mongoose.model('events')
或者你可以在mongoose连接后用循环
来要求该模型