2015-11-24 28 views
1

我试图阵列添加到蒙戈的文件,我得到了错误"Cast to Array failed for value "[object Object],[object Object]" at path "vendors""错误添加阵列的MongoDB /猫鼬收集

这里是我的模型:

module.exports = { 
    attributes: { 
    vendors: { 
     type: [String] 
    }, 
    description: { 
     type: String 
    } 
    } 
}; 

这里是我的代码来创建:

var vendors = ko.observableArray(['foo','bar']); 
var desc = ko.observable('yadda yadda yadda'); 
var dto = { 
    data: { 
     vendors: vendors(), 
     description: description() 
    } 
}; 
DataService.quoteRequest.create(dto); 
+0

您的自定义供应商代码的外观如何? – inspired

+0

这是一个错字,应该是供应商。我修好了它。 –

+0

无论敲除,如果我在DTO中传递一个普通数组,我会得到相同的错误。 –

回答

1

音乐岸,

我不熟悉的KN ockout.js,但对于猫鼬,它看起来并不像你正在定义你的SchemaModel。您需要做到以下几点:

定义模式

var mongoose = require('mongoose'), 
    Schema = mongoose.Schema; 

var attributesSchema = new Schema({ 
    vendors: [String], 
    description: String 
}); 

创建模型

var Attributes = mongoose.model('Attribute',attributesSchema); 

创建和保存文档

//create an attribute document 
var attribute = new Attributes(
    { 
    vendors: vendorsArray, 
    description: desc 
    } 
); 

attribute.save(function(err){ 
if(!err) console.log('Success'); 
}