如何在mongoose中保存json数据

时间:2017-12-07 17:22:40

标签: javascript json node.js mongodb mongoose

这是我想要将它保存在mongoose数据库中的json数据,但我很困惑如何设计我的mongoose模式。

data is { 'posts[0][commentId]': '0',
  'posts[0][id]': '1',
  'posts[0][postName]': 'hi',
  'posts[0][img]': '',
  'posts[0][postBy]': ' Neeraj',
  'posts[1][commentId]': '0',
  'posts[1][id]': '2',
  'posts[1][postName]': 'hii',
  'posts[1][img]': '',
  'posts[1][postBy]': ' Neeraj',
  'posts[1][comments][0][commentId]': '1',
  'posts[1][comments][0][commentValue]': 'hlo how are u???',
  'posts[1][comments][0][commentBy]': ' Neeraj',
  'posts[1][comments][0][upCounter]': '5',
  'posts[1][comments][0][downCounter]': '6' }

这是我的Post模式,但我不知道如何实际设计它。

var postSchema=new Schema({
    posts:[{
         commentId:  Number ,
  
    comments : [{
      commentBy : String,
        commentId  : String,
        commentValue:String,
        date:Date,
        downCounter:Number,
        upCounter:Number
    }],
id:String,
img:String,
postBy:String,
postDate:Date,
postName:String
}]
});

2 个答案:

答案 0 :(得分:3)

您可以只在猫鼬模式中将posts属性设置为 Object 并存储整个对象。

类似这样的东西:

var postSchema = new Schema({
      posts: {
        type: Object,
        required: false //depends on whether the field is mandatory or not
      }
    });

答案 1 :(得分:0)

您可以直接将JSON存储到数据库:

var post_schema = mongoose.Schema({data : JSON});
var post_model = mongoose.model('collection_name', post_schema);

var newData = new post_model({data : <json_object>});

//saving json schema to mongodb         

newData.save(function(err){
    if (err) {
               throw err;
    }
    console.log('INSERTED!');
});