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

Posted

技术标签:

【中文标题】用于存储子文档的 JSON 对象数组的 Mongoose 模式【英文标题】:Mongoose schema for storing an array of JSON objects for subdocuments 【发布时间】:2014-11-29 23:34:49 【问题描述】:

我有一个 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】:

它非常简单。只需将事实设为数组即可。 所以改变

Facts:                 
            type:Array
        ,

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

【讨论】:

以上是关于用于存储子文档的 JSON 对象数组的 Mongoose 模式的主要内容,如果未能解决你的问题,请参考以下文章

MongoDB 的功能

mongo db:从对象数组中获取子数组,其值在单个文档的范围内

mongo 介绍

从数组中查找并返回第一个匹配的子文档(Meteor / Mongo)

高可用的MongoDB集群

通过 Meteor / Mongo 返回子文档数组