gpt4 book ai didi

node.js - Mongoose 嵌套模式 CastError

转载 作者:可可西里 更新时间:2023-11-01 10:03:31 27 4
gpt4 key购买 nike

我有以下包含嵌套模式的数据:

用户模式

(function userModel() {

var mongoose = require('mongoose');
var Entry = require('./entry');
var Schema = mongoose.Schema;

var usersSchema = new Schema({
entries: [Entry]
});

module.exports = mongoose.model('Users', usersSchema);

})();

入口模式

(function entryModel() {
var mongoose = require('mongoose');
var Schema = mongoose.Schema;

var entrySchema = new Schema({
timeStamp: {
type: Date,
default: Date.now
},
data : [Schema.Types.Mixed]
});

module.exports = mongoose.model('Entry', entrySchema);

})();

我返回以下错误:

errors: 
{ entries:
{ [CastError: Cast to Array failed for value "[object Object]" at path "entries"]`

据我所知,这是包含子文档的正确方法。我在这里做错了什么吗?

最佳答案

此行module.exports = mongoose.model('Entry', entrySchema); 导出模型 而不是模式。您需要导出 entrySchema 并使用它来构造 userSchema

编辑:

如果你想导出模型和模式,你需要做类似的事情

module.exports = {
schema: entrySchema,
model: mongoose.model('Entry', entrySchema)
}

但一般来说,您很少需要导出实际模型。这是因为无论何时您想要访问不同文件中的特定模型,您只需调用 mongoose.model('Entry') 并取回该模型实例。不必为了访问模型而调用 require('.path/to/model')

关于node.js - Mongoose 嵌套模式 CastError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32103954/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com