用于存储子文档的JSON对象数组的Mongoose模式

时间:2014-10-05 15:02:02

标签: arrays json node.js mongodb mongoose

我有一个JSON对象,我想创建一个使用mongoose

的模式
    { ProjectName: 'asdf',
  Embargo: 'Yes',
  Angle: '1',
  Facts: '[{"count":1,"fact":"dsafdsaf","content":"dsafdsaf"}, {"count":3,"fact":"dsafdsaf","content":"dsafdsaf" } , {"count":2,"fact":"dsafdsaf","content":"dsafdsaf"}]',
  About: '<p>Anthony Bodin&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p>',
  EditorNote: 'No',
  OrderId: 'tok_14kGRO2Jju1nvjb47YF9jQTJ',
  Payment: 'Paid' }

我的问题是Facts元素将包含对象数组,我不太确定如何将它保存到数据库中 这是我现在拥有的架构

var ArticleSchema = new mongoose.Schema({
    userId: {
        type: String,
        default: ''
    },
    userEmail: {
        type: String,
        default: ''
    },
    article: {
        date: {
            type: Date,
            default: Date()
        },
        ProjectName: {
            type: String,
            default: ''
        },
        Embargo: {
            type: String,
            default: true
        },
        Angle: {
            type: String,
            default: ''
        },
        Facts: {                
            type:Array
        },
        About: {
            type:String,
            default:''
        },
        EditorNote: {
            type:String,
            default:''
        },  
        Payment: {
            type: String,
            default: 'Not Paid'
        },
        OrderId: {
            type:String,
            default:''
        }
    }
});

将数据保存为数组是保存Facts元素的正确方法吗?

1 个答案:

答案 0 :(得分:19)

非常简单。只需将事实作为一个数组。 所以改变

Facts: {                
            type:Array
        },

Facts: [],它将能够在Facts json字段中存储您拥有的对象数组。