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
javascript node.js object mongoose
add a comment |
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
javascript node.js object mongoose
Have you used$push
infindOneAndUpdate
? It should work.
– Gaurav Bharti
Nov 20 at 17:22
add a comment |
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
javascript node.js object mongoose
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
javascript node.js object mongoose
edited Nov 20 at 17:45
Gaurav Bharti
4211415
4211415
asked Nov 20 at 17:13
sharsart
447
447
Have you used$push
infindOneAndUpdate
? It should work.
– Gaurav Bharti
Nov 20 at 17:22
add a comment |
Have you used$push
infindOneAndUpdate
? 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
add a comment |
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);
}
});
wonderful! Thanks Raunik and Gaurav :)
– sharsart
Nov 20 at 17:33
add a comment |
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
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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);
}
});
wonderful! Thanks Raunik and Gaurav :)
– sharsart
Nov 20 at 17:33
add a comment |
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);
}
});
wonderful! Thanks Raunik and Gaurav :)
– sharsart
Nov 20 at 17:33
add a comment |
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);
}
});
UserGrades.findOneAndUpdate({ user: id }, { $push: { StudentGrades: gradeFields }}, { new: true }, function(err, raw) {
if (err) {
res.send(err);
} else {
res.send(gradeFields);
}
});
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
add a comment |
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
add a comment |
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.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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
Have you used
$push
infindOneAndUpdate
? It should work.– Gaurav Bharti
Nov 20 at 17:22