I am trying the following things:
1 Getting request body (Which is embedded with an Array).
2 Then After getting the request body I am trying to save all the objects in the array into my key of schema called "ExtraInfo".But When I run the API My "ExtraInfo" key has only object id without data.
I have Explained my whole question with my code and in my API Code, I have mentioned my logic with a comment where I am trying to push my array data to my "ExtraInfo" key.
Model:
const mongoose = require('mongoose'); const ExtraInfoModel = mongoose.Schema({ title:String, body:String, date: Date }) const EmbeddedDataModel = mongoose.Schema({ class:Number, ExtraInfo:[ExtraInfoModel], }) module.exports = mongoose.model('EmbeddedDataCluster',EmbeddedDataModel);
RequestBody:
{ "class":"96", "ExtraInfo":[ { "title":"new1", "body":"dummy1" }, { "title":"new2", "body":"dummy2" }, { "title":"new3", "body":"dummy3" }, { "title":"new4", "body":"dummy4" }, { "title":"new5", "body":"dummy5" } ] }
Now My Api
Router.post('/Embed', async (req, res) => { const _ExtraInfo = await req.body.ExtraInfo; console.log(_ExtraInfo); try { const _EmbeddedDataModel = await new EmbeddedDataModel({ class: req.body.class, ExtraInfo:{$push:{$in:_ExtraInfo}}//Here is trying to loop through //each object from array and trying to push in Key But when the Data // saved the "ExtraInfo" key is empty and only have object id }); _EmbeddedDataModel.save(); console.log(_EmbeddedDataModel); res.json(_EmbeddedDataModel); } catch (error) { console.log(error); res.json(error); } })
Result of DB:
{ "_id": "601a1f0e9fcda33570f9e26b", "class": 96, "ExtraInfo": [ { "_id": "601a1f0e9fcda33570f9e26c" } ] }
Please Help me
https://stackoverflow.com/questions/65939276/how-i-can-post-request-body-array-to-mongodb-using-nodejs-and-mongoose January 28, 2021 at 10:37PM
没有评论:
发表评论