доступ к массиву данных json для хранения в mongodb, документирование - PullRequest
0 голосов
/ 06 января 2019

UserSchema

const UserSchema = new Schema({
name:{
    type:String,
    validate: {
        validator: (name) => name.length>2,
        message:'Name must be longer than 2 characters'
    },

},
postCount:{
    type:Number,
    default:0
},
posts:
    type:[PostSchema],

});

PostSchema

const PostSchema = new Schema({
title:{
    type:String,
    required:true
}

});

Опубликовать метод для вставки данных в пользовательский документ (mongodb)

app.post('/user',(req,res)=>{

console.log(req.body.posts);
var user = new User({
   name:req.body.name,
   posts: req.body.posts
});
user.save().then((doc)=>{
    res.status(200).send(doc);
},(e)=>{
    res.status(400).send(e);
});

});

Создание запроса POST с использованием этих данных JSON

{
"name":"TIM",
"posts":[
    {"title":"abc", "name":"xxx"},
    {"title":"xyz", "name":"xxx"}]

}

После запроса метода POST для данных JSON выше

{
"postCount": 0,
"_id": "5c32301725d0c965bd5fa82e",
"name": "TIM",
"posts": [
    {
        "_id": "5c32301725d0c965bd5fa830"
    },
    {
        "_id": "5c32301725d0c965bd5fa82f"
    }
],
"__v": 0

}

Я создал userchema и субдокументированные посты, сейчас я пытаюсь вставить данные из почтальона, используя метод post, но заголовок не обновляется, и генерируется только идентификатор для отдельных постов. пожалуйста, помогите.

Я должен иметь возможность добавить имя пользователя рядом с массивом сообщений и их заголовков.

1 Ответ

0 голосов
/ 06 января 2019

Попробуйте

сообщений: [PostSchema]

Ссылка https://mongoosejs.com/docs/subdocs.html

Также ваша схема сообщений не содержит поля имени. Вы пытаетесь вставить имя по почте.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...