将数组添加到MongoDB / Mongoose集合时出错

我想添加一个数组到一个Mongo文档,并且我得到了错误"Cast to Array failed for value "[object Object],[object Object]" at path "vendors""

这是我的模型:

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

这是我的代码来创build:

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

音乐岸边,

我不熟悉knockout.js,但是对于Mongoose而言,它看起来不像是在定义SchemaModel 。 您将需要执行以下操作:

定义模式

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

创build一个模型

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

创build并保存文档

 //create an attribute document var attribute = new Attributes( { vendors: vendorsArray, description: desc } ); attribute.save(function(err){ if(!err) console.log('Success'); }