Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 从json创建mongoose模式_Node.js_Mongodb_Express_Mongoose - Fatal编程技术网

Node.js 从json创建mongoose模式

Node.js 从json创建mongoose模式,node.js,mongodb,express,mongoose,Node.js,Mongodb,Express,Mongoose,我开始玩node.js、express、mongo和所有这些好东西。 我不知道如何为JSON文件定义mongoose模式,如下所示: [ { "artist" : "Lorem", "profile-picture": "/lorem.jpg", "bio": "Lorem ipsum dolor sit amet, consectetur.", "songs": [ { "id": 0, "name": "Lore

我开始玩node.js、express、mongo和所有这些好东西。 我不知道如何为JSON文件定义mongoose模式,如下所示:

[
  {
    "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
});
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" : "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
});
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" : "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
});
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);
然后,您的
艺术家
文档的歌曲键将成为
DocumentArray
的一个实例。这是一个特殊的子类
Array
,可以处理强制转换,并具有处理嵌入文档的特殊方法