Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.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
Mongoose:使用不同的模式保存嵌套的JSON_Json_Node.js_Mongodb_Mongoose - Fatal编程技术网

Mongoose:使用不同的模式保存嵌套的JSON

Mongoose:使用不同的模式保存嵌套的JSON,json,node.js,mongodb,mongoose,Json,Node.js,Mongodb,Mongoose,各位。我希望以多个级别保存JSON文档,例如,我有一个嵌套的JSON,其元素级别如下: { "created":"2015-11-10 15:47:41.107Z", "id_user" : "01", "version" : "1" "record" : { "name" : "Carl Powers", "reference" : [{ "url" : "www.test.com", "created" : "2015-11-10 15:47:41.107Z"}

各位。我希望以多个级别保存JSON文档,例如,我有一个嵌套的JSON,其元素级别如下:

{   
 "created":"2015-11-10 15:47:41.107Z",
 "id_user" : "01",
 "version" : "1"
 "record" : {
    "name" : "Carl Powers",
    "reference" : [{ "url" : "www.test.com", "created" : "2015-11-10 15:47:41.107Z"}] 
 }
}
我想保存这个JSON,为每个元素使用不同的模式,因为我想在我的MongoDB中使用不同的集合,我不想使用嵌入元素的模式

var ElementSchema = new Schema({
 created : {type: Date, default: Date.now},
 id_user : String,
 version : { type: Number, min: 0 },
 record : {type: Schema.Types.ObjectId, ref: 'recordSchema'}
});

var recordSchema = new Schema({
    name : String,
    reference : [{type: Schema.Types.ObjectId, ref: 'referenceSchema'}]
});

var referenceSchema = new Schema({
    url : String,
    created : {type: Date, default: Date.now}
  });

可以使用mongoose一次性保存我的示例JSON。是否需要放置每个元素的ID?在这种情况下,一旦收到JSON,生成每个id的最佳方法是什么,以及如何放入每个元素?

这可以通过使用子文档来解决,下面是一个示例:

var referenceSchema= new Schema({
    url : String,
    created : {type: Date, default: Date.now}
});

var recordSchema = new Schema({
    name : String,
    reference : { type: [referenceSchema]}
});

var ElementSchema = new Schema({
 created : {type: Date, default: Date.now},
 id_user : mongoose.Schema.ObjectId,
 version : { type: Number, min: 0 },
 record : { type: recordSchema }
});
要将元素文档与子文档一起保存,请执行以下操作:

var element = new ElementSchema({
   created: 'date',
   id_user: 'user-id',
   version: 2
   record: {
      name: 'name',
      reference: [{
         url: 'url1',
         created: 'date1'
      }, {
         url: 'url2',
         created: 'date2'
      }]
   }
});