How to add to an array of objects with Node.js and Mongoose?











up vote
1
down vote

favorite












Hi so I have an an array of object like this:



[
{
"_id": "5bf43c42a09e1129b8f0cd4c",
"user": "5bc89dec5f6e1103f808671b",
"StudentGrades": [
{
"_id": "5bf43daf58f0f803d4e9760b",
"classCode": "ENG1A0",
"gradeLevel": 12,
"credit": 1,
"mark": 67
}
],
"__v": 0
}
]


Using node.js and mongoose I want add another object in the Student Grades array. The API code I have now is only updating the array and not appending to it. I was wondering whats the correct way to add another object to the StudentGrades array of objects.



router.put('/:user_id', function(req, res) {
let id = req.params.user_id;
const gradeFields = {
classCode: req.body.classCode,
gradeLevel: req.body.gradeLevel,
credit: req.body.credit,
mark: req.body.mark
};
passport.authenticate('jwt', { session: false }), UserGrades.update({ user: id }, gradeFields, function(err, raw) {
if (err) {
res.send(err);
} else {
res.send(gradeFields);
}
});
});


I also tried using UserGrades.findOneandUpdate but that was also doing the same thing, it was only editing the values in the object and not appending another object to it. I am guessing I have to push the values, but I am not sure how. Help would be appreciated










share|improve this question
























  • Have you used $push in findOneAndUpdate? It should work.
    – Gaurav Bharti
    Nov 20 at 17:22















up vote
1
down vote

favorite












Hi so I have an an array of object like this:



[
{
"_id": "5bf43c42a09e1129b8f0cd4c",
"user": "5bc89dec5f6e1103f808671b",
"StudentGrades": [
{
"_id": "5bf43daf58f0f803d4e9760b",
"classCode": "ENG1A0",
"gradeLevel": 12,
"credit": 1,
"mark": 67
}
],
"__v": 0
}
]


Using node.js and mongoose I want add another object in the Student Grades array. The API code I have now is only updating the array and not appending to it. I was wondering whats the correct way to add another object to the StudentGrades array of objects.



router.put('/:user_id', function(req, res) {
let id = req.params.user_id;
const gradeFields = {
classCode: req.body.classCode,
gradeLevel: req.body.gradeLevel,
credit: req.body.credit,
mark: req.body.mark
};
passport.authenticate('jwt', { session: false }), UserGrades.update({ user: id }, gradeFields, function(err, raw) {
if (err) {
res.send(err);
} else {
res.send(gradeFields);
}
});
});


I also tried using UserGrades.findOneandUpdate but that was also doing the same thing, it was only editing the values in the object and not appending another object to it. I am guessing I have to push the values, but I am not sure how. Help would be appreciated










share|improve this question
























  • Have you used $push in findOneAndUpdate? It should work.
    – Gaurav Bharti
    Nov 20 at 17:22













up vote
1
down vote

favorite









up vote
1
down vote

favorite











Hi so I have an an array of object like this:



[
{
"_id": "5bf43c42a09e1129b8f0cd4c",
"user": "5bc89dec5f6e1103f808671b",
"StudentGrades": [
{
"_id": "5bf43daf58f0f803d4e9760b",
"classCode": "ENG1A0",
"gradeLevel": 12,
"credit": 1,
"mark": 67
}
],
"__v": 0
}
]


Using node.js and mongoose I want add another object in the Student Grades array. The API code I have now is only updating the array and not appending to it. I was wondering whats the correct way to add another object to the StudentGrades array of objects.



router.put('/:user_id', function(req, res) {
let id = req.params.user_id;
const gradeFields = {
classCode: req.body.classCode,
gradeLevel: req.body.gradeLevel,
credit: req.body.credit,
mark: req.body.mark
};
passport.authenticate('jwt', { session: false }), UserGrades.update({ user: id }, gradeFields, function(err, raw) {
if (err) {
res.send(err);
} else {
res.send(gradeFields);
}
});
});


I also tried using UserGrades.findOneandUpdate but that was also doing the same thing, it was only editing the values in the object and not appending another object to it. I am guessing I have to push the values, but I am not sure how. Help would be appreciated










share|improve this question















Hi so I have an an array of object like this:



[
{
"_id": "5bf43c42a09e1129b8f0cd4c",
"user": "5bc89dec5f6e1103f808671b",
"StudentGrades": [
{
"_id": "5bf43daf58f0f803d4e9760b",
"classCode": "ENG1A0",
"gradeLevel": 12,
"credit": 1,
"mark": 67
}
],
"__v": 0
}
]


Using node.js and mongoose I want add another object in the Student Grades array. The API code I have now is only updating the array and not appending to it. I was wondering whats the correct way to add another object to the StudentGrades array of objects.



router.put('/:user_id', function(req, res) {
let id = req.params.user_id;
const gradeFields = {
classCode: req.body.classCode,
gradeLevel: req.body.gradeLevel,
credit: req.body.credit,
mark: req.body.mark
};
passport.authenticate('jwt', { session: false }), UserGrades.update({ user: id }, gradeFields, function(err, raw) {
if (err) {
res.send(err);
} else {
res.send(gradeFields);
}
});
});


I also tried using UserGrades.findOneandUpdate but that was also doing the same thing, it was only editing the values in the object and not appending another object to it. I am guessing I have to push the values, but I am not sure how. Help would be appreciated







javascript node.js object mongoose






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 20 at 17:45









Gaurav Bharti

4211415




4211415










asked Nov 20 at 17:13









sharsart

447




447












  • Have you used $push in findOneAndUpdate? It should work.
    – Gaurav Bharti
    Nov 20 at 17:22


















  • Have you used $push in findOneAndUpdate? It should work.
    – Gaurav Bharti
    Nov 20 at 17:22
















Have you used $push in findOneAndUpdate? It should work.
– Gaurav Bharti
Nov 20 at 17:22




Have you used $push in findOneAndUpdate? It should work.
– Gaurav Bharti
Nov 20 at 17:22












1 Answer
1






active

oldest

votes

















up vote
1
down vote



accepted










UserGrades.findOneAndUpdate({ user: id }, { $push: { StudentGrades: gradeFields }}, { new: true }, function(err, raw) {
if (err) {
res.send(err);
} else {
res.send(gradeFields);
}
});





share|improve this answer























  • wonderful! Thanks Raunik and Gaurav :)
    – sharsart
    Nov 20 at 17:33













Your Answer






StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");

StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});














draft saved

draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53398155%2fhow-to-add-to-an-array-of-objects-with-node-js-and-mongoose%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























1 Answer
1






active

oldest

votes








1 Answer
1






active

oldest

votes









active

oldest

votes






active

oldest

votes








up vote
1
down vote



accepted










UserGrades.findOneAndUpdate({ user: id }, { $push: { StudentGrades: gradeFields }}, { new: true }, function(err, raw) {
if (err) {
res.send(err);
} else {
res.send(gradeFields);
}
});





share|improve this answer























  • wonderful! Thanks Raunik and Gaurav :)
    – sharsart
    Nov 20 at 17:33

















up vote
1
down vote



accepted










UserGrades.findOneAndUpdate({ user: id }, { $push: { StudentGrades: gradeFields }}, { new: true }, function(err, raw) {
if (err) {
res.send(err);
} else {
res.send(gradeFields);
}
});





share|improve this answer























  • wonderful! Thanks Raunik and Gaurav :)
    – sharsart
    Nov 20 at 17:33















up vote
1
down vote



accepted







up vote
1
down vote



accepted






UserGrades.findOneAndUpdate({ user: id }, { $push: { StudentGrades: gradeFields }}, { new: true }, function(err, raw) {
if (err) {
res.send(err);
} else {
res.send(gradeFields);
}
});





share|improve this answer














UserGrades.findOneAndUpdate({ user: id }, { $push: { StudentGrades: gradeFields }}, { new: true }, function(err, raw) {
if (err) {
res.send(err);
} else {
res.send(gradeFields);
}
});






share|improve this answer














share|improve this answer



share|improve this answer








edited Nov 20 at 17:29









Gaurav Bharti

4211415




4211415










answered Nov 20 at 17:22









Raunik Singh

844




844












  • wonderful! Thanks Raunik and Gaurav :)
    – sharsart
    Nov 20 at 17:33




















  • wonderful! Thanks Raunik and Gaurav :)
    – sharsart
    Nov 20 at 17:33


















wonderful! Thanks Raunik and Gaurav :)
– sharsart
Nov 20 at 17:33






wonderful! Thanks Raunik and Gaurav :)
– sharsart
Nov 20 at 17:33




















draft saved

draft discarded




















































Thanks for contributing an answer to Stack Overflow!


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.





Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


Please pay close attention to the following guidance:


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53398155%2fhow-to-add-to-an-array-of-objects-with-node-js-and-mongoose%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

404 Error Contact Form 7 ajax form submitting

How to know if a Active Directory user can login interactively

TypeError: fit_transform() missing 1 required positional argument: 'X'