Mongoose:使用不同的模式保存嵌套的JSON
各位。我希望以多个级别保存JSON文档,例如,我有一个嵌套的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"}
{
"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'
}]
}
});