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

标签 arrays node.js mongodb knockout.js mongoose

我正在尝试将数组添加到 Mongo 文档,但收到错误“在路径“供应商”处,值“[object Object],[object Object]”的值转换为数组失败”

这是我的模型:

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);

最佳答案

音乐海岸,

我不熟悉knockout.js,但就Mongoose而言,您似乎没有定义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');
}

关于arrays - 将数组添加到 MongoDB/Mongoose 集合时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33903413/

相关文章:

python - 从 ListField 中删除带有 FileField 的 EmbeddedDocument

arrays - 在锯齿状的二维网格上向外螺旋

javascript - Google 电子表格脚本 - 仅授予对一张工作表的访问权限

c++ - SSE作用于元素个数不是4的倍数的数组

php - 如何读取复杂的 PHP 数组?

mongodb - 使 _id 索引在 mongodb 集合中唯一

javascript - NodeJS 如何处理异步文件 IO?

mysql - 插入行导致 404

javascript - 何时在 Mongoose 中使用 new ObjectId ("string-id")而不是 ObjectId ("string-id")?

java - 无法从docker内部访问mongo