首页 > 解决方案 > Mongoose create() 为带有 Array 的模式提供“Cast to Array failed for value "[object Object],[object Object]"”

问题描述

具有具有以下值的架构:

var CartSchema = new Schema({
//...

requests: [{
        _id:false,
        type: String,   
        count: Number,  
        expiration: String
    }]

})

当我尝试使用带有几个请求的有效请求对象调用 mongoose create() 时,我收到以下错误:

    message: 'Cast to Array failed for value "[object Object],[object Object]" at path "requests"',
    name: 'CastError',
    kind: 'Array',
    value: [Object],
    path: 'licenses' } } }

标签: mongoose

解决方案


在我们的系统上遇到这个问题后,我在网上找不到解决方案。

不知何故,我相信以以下方式描述模式会使猫鼬认为具有单个对象的数组是预期的:

var CartSchema = new Schema({
//...

requests: [{
        _id:false,
        type: String,   
        count: Number,  
        expiration: String
    }]

})

经过几次尝试,我发现用嵌入式架构替换前一个是可行的:

var RequestSchema = new Schema({
        _id:false,
        type: String,   
        count: Number,  
        expiration: String
    });

var CartSchema = new Schema({
//...

requests: [ RequestSchema ]

})

推荐阅读