可能存在多个原因导致此问题,因此我们需要更多的详细信息,例如在哪里失败了,是否出现错误消息等。但是,以下一些常见原因可能会导致此问题:
require
的顺序不正确。在一些情况下,可能需要在引入 schema 之前引入 mongoose。这是由于 mongoose 需要在 Schema
中注册 model
,这样才能调用相关的方法。以下是一个示例代码:const mongoose = require('mongoose');
const Schema = mongoose.Schema;
// ...
const MySchema = new Schema({ ... });
const MyModel = mongoose.model('MyModel', MySchema);
mongoose.connection
的 once
方法来完成此操作。以下是一个例子:const mongoose = require('mongoose');
const Schema = mongoose.Schema;
mongoose.connect('mongodb://localhost/test', {
useNewUrlParser: true,
useUnifiedTopology: true
});
mongoose.connection.once('open', () => {
const MySchema = new Schema({ ... });
const MyModel = mongoose.model('MyModel', MySchema);
// ...
});
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const MySchema = new Schema({ ... });
const MyModel = mongoose.model('MyModel', MySchema);
module.exports = MyModel;
总之,这些是一些可能导致在某些地方调用 mongoose schema 方法失败的原因。您