从json创建mongoose模式

时间:2015-07-15 08:00:02

标签: node.js mongodb express mongoose

我开始玩node.js,express,mongo和所有好东西。 我无法弄清楚如何为这样的JSON文件定义mongoose Schema:

[
  {
    "artist" : "Lorem",
    "profile-picture": "/lorem.jpg",
    "bio": "Lorem ipsum dolor sit amet, consectetur.",
    "songs": [
      {
        "id": 0,
        "name": "Lorem ipsum",
        "url": "/lorem.mp3",
        "length": 34,
        "rating": {
          "likes": 3,
          "likes-timestamps": [
            1436822318,
            1436822321,
            1436822334
          ]
        }
      }
    ]
  }
]

在我遇到的每个教程中,它都太简单了,不像这样:

MySchema = new Schema({
  name: String
});

我不确定是否嵌套那些对象和数组等。 提前谢谢。

1 个答案:

答案 0 :(得分:1)

根据 Mongoose documentation 对嵌入式文档的指导,您可以像这样定义一个架构:

var Song = new Schema({
    "id"      : Number,
    "name"    : String,
    "url"     : String,
    "length"  : Number,
    "rating"  : {
        "likes": Number,
        "likes-timestamps": [Number]
    }
});

var Artist = new Schema({
    "artist"            : String,
    "profile-picture"   : String,
    "bio"               : String,
    "songs"             : [Song]  
});

mongoose.model('Artist', Artist);

Artist文档的歌曲键将成为DocumentArray的实例。这是一个可以处理强制转换的特殊子类Array,并且具有使用嵌入式文档的特殊方法。