Updating a value that is dependent on a newly updated document keyUpdate MongoDB field using value of another fieldHow to limit an array size in MongoDB?MongoDB (PHP) - Custom “id”, and OrderWith numberQuery for documents where array size is greater than 1Insert if not exist else push into array(as well as update old values) in mongodb php?Mongodb, getting the id of the newly pushed embedded objectHow to get last updated document in MongoDB with official C# driver“Large data” work flows using pandasFind document with array that contains a specific valueMongodb - aggregate by embedded document id overwrite the outer document _idMongoose schemaMongoDB, How to get ObjectId that just created in Embedded document?
Prepare a user to perform an action before proceeding to the next step
Is it unprofessional to mention your cover letter and resume are best viewed in Chrome?
"Valet parking " or "parking valet"
If the Moon were impacted by a suitably sized meteor, how long would it take to impact the Earth?
Scam? Checks via Email
Is it bad style if the personal first person narrator of a story dies during said story?
Is Ear Protection Necessary For General Aviation Airplanes?
Why are subdominants unstable?
Why don't short runways use ramps for takeoff?
Why would an invisible personal shield be necessary?
Boots or trail runners with reference to blisters?
What clothes would flying-people wear?
Bouncing map back into its bounds, after user dragged it out
Is there a word to describe someone who is, or the state of being, content with hanging around others without interacting with them?
Applications of pure mathematics in operations research
How do you deal with characters with multiple races?
Was the Psych theme song written for the show?
Why tantalum for the Hayabusa bullets?
Security measures that could plausibly last 150+ years?
Efficiently finding furthest two nodes in a graph
Embedded C - Most elegant way to insert a delay
Is it okay for me to decline a project on ethical grounds?
Why would anyone ever invest in a cash-only etf?
Can Papyrus be folded?
Updating a value that is dependent on a newly updated document key
Update MongoDB field using value of another fieldHow to limit an array size in MongoDB?MongoDB (PHP) - Custom “id”, and OrderWith numberQuery for documents where array size is greater than 1Insert if not exist else push into array(as well as update old values) in mongodb php?Mongodb, getting the id of the newly pushed embedded objectHow to get last updated document in MongoDB with official C# driver“Large data” work flows using pandasFind document with array that contains a specific valueMongodb - aggregate by embedded document id overwrite the outer document _idMongoose schemaMongoDB, How to get ObjectId that just created in Embedded document?
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;
My goal is to add a comment to my CommentFeed and while doing that I want to push that comment into my topComments field and also update the 'numOfComments' . I want to limit the topComments to only 3 comments (How would I even set that up?). And how do I take the previous value of numOfComments and add one to it?
CommentFeed.findOneAndUpdate(
_id: commentId ,
$push:
comments:
text: req.body.text
,
$push: topComments:text: req.body.text, <--- Limit this somehow to only allow an array length of 3?
$set: numOfComments: ? , <---What kind of logic is used here?
,
new: true
)
CommentFeed Schema
const CommentFeedSchema = new Schema(
topComments:[text:type:String],
numOfComments:type:Number,
comments: [
text: type: String, required: true
]);
mongodb
add a comment |
My goal is to add a comment to my CommentFeed and while doing that I want to push that comment into my topComments field and also update the 'numOfComments' . I want to limit the topComments to only 3 comments (How would I even set that up?). And how do I take the previous value of numOfComments and add one to it?
CommentFeed.findOneAndUpdate(
_id: commentId ,
$push:
comments:
text: req.body.text
,
$push: topComments:text: req.body.text, <--- Limit this somehow to only allow an array length of 3?
$set: numOfComments: ? , <---What kind of logic is used here?
,
new: true
)
CommentFeed Schema
const CommentFeedSchema = new Schema(
topComments:[text:type:String],
numOfComments:type:Number,
comments: [
text: type: String, required: true
]);
mongodb
Possible duplicate of How to limit an array size in MongoDB?
– OzW
Mar 27 at 11:10
add a comment |
My goal is to add a comment to my CommentFeed and while doing that I want to push that comment into my topComments field and also update the 'numOfComments' . I want to limit the topComments to only 3 comments (How would I even set that up?). And how do I take the previous value of numOfComments and add one to it?
CommentFeed.findOneAndUpdate(
_id: commentId ,
$push:
comments:
text: req.body.text
,
$push: topComments:text: req.body.text, <--- Limit this somehow to only allow an array length of 3?
$set: numOfComments: ? , <---What kind of logic is used here?
,
new: true
)
CommentFeed Schema
const CommentFeedSchema = new Schema(
topComments:[text:type:String],
numOfComments:type:Number,
comments: [
text: type: String, required: true
]);
mongodb
My goal is to add a comment to my CommentFeed and while doing that I want to push that comment into my topComments field and also update the 'numOfComments' . I want to limit the topComments to only 3 comments (How would I even set that up?). And how do I take the previous value of numOfComments and add one to it?
CommentFeed.findOneAndUpdate(
_id: commentId ,
$push:
comments:
text: req.body.text
,
$push: topComments:text: req.body.text, <--- Limit this somehow to only allow an array length of 3?
$set: numOfComments: ? , <---What kind of logic is used here?
,
new: true
)
CommentFeed Schema
const CommentFeedSchema = new Schema(
topComments:[text:type:String],
numOfComments:type:Number,
comments: [
text: type: String, required: true
]);
mongodb
mongodb
asked Mar 26 at 21:25
user10204157user10204157
1911 silver badge13 bronze badges
1911 silver badge13 bronze badges
Possible duplicate of How to limit an array size in MongoDB?
– OzW
Mar 27 at 11:10
add a comment |
Possible duplicate of How to limit an array size in MongoDB?
– OzW
Mar 27 at 11:10
Possible duplicate of How to limit an array size in MongoDB?
– OzW
Mar 27 at 11:10
Possible duplicate of How to limit an array size in MongoDB?
– OzW
Mar 27 at 11:10
add a comment |
1 Answer
1
active
oldest
votes
For the first issue (limiting the topComments array size) you can use the $slice operator. This has already been answered in other questions. But you might consider computing topComments from comments using the$slice operator in the projection argument:
CommentFeed.find( , comments: $slice: -3 )
For the second issue (updating a document using existing fields from that document), it is not something you can do in a simple findOneAndUpdate call. This was also discussed in other questions.
But you might consider computing numOfComments instead of updating it every time. You can do that with the $size operator of the aggregation framework:
CommentFeed.aggregate($project: numOfComments: $size:"$comments" )
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%2f55366439%2fupdating-a-value-that-is-dependent-on-a-newly-updated-document-key%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
For the first issue (limiting the topComments array size) you can use the $slice operator. This has already been answered in other questions. But you might consider computing topComments from comments using the$slice operator in the projection argument:
CommentFeed.find( , comments: $slice: -3 )
For the second issue (updating a document using existing fields from that document), it is not something you can do in a simple findOneAndUpdate call. This was also discussed in other questions.
But you might consider computing numOfComments instead of updating it every time. You can do that with the $size operator of the aggregation framework:
CommentFeed.aggregate($project: numOfComments: $size:"$comments" )
add a comment |
For the first issue (limiting the topComments array size) you can use the $slice operator. This has already been answered in other questions. But you might consider computing topComments from comments using the$slice operator in the projection argument:
CommentFeed.find( , comments: $slice: -3 )
For the second issue (updating a document using existing fields from that document), it is not something you can do in a simple findOneAndUpdate call. This was also discussed in other questions.
But you might consider computing numOfComments instead of updating it every time. You can do that with the $size operator of the aggregation framework:
CommentFeed.aggregate($project: numOfComments: $size:"$comments" )
add a comment |
For the first issue (limiting the topComments array size) you can use the $slice operator. This has already been answered in other questions. But you might consider computing topComments from comments using the$slice operator in the projection argument:
CommentFeed.find( , comments: $slice: -3 )
For the second issue (updating a document using existing fields from that document), it is not something you can do in a simple findOneAndUpdate call. This was also discussed in other questions.
But you might consider computing numOfComments instead of updating it every time. You can do that with the $size operator of the aggregation framework:
CommentFeed.aggregate($project: numOfComments: $size:"$comments" )
For the first issue (limiting the topComments array size) you can use the $slice operator. This has already been answered in other questions. But you might consider computing topComments from comments using the$slice operator in the projection argument:
CommentFeed.find( , comments: $slice: -3 )
For the second issue (updating a document using existing fields from that document), it is not something you can do in a simple findOneAndUpdate call. This was also discussed in other questions.
But you might consider computing numOfComments instead of updating it every time. You can do that with the $size operator of the aggregation framework:
CommentFeed.aggregate($project: numOfComments: $size:"$comments" )
edited Mar 27 at 11:24
answered Mar 27 at 11:13
OzWOzW
5981 gold badge7 silver badges22 bronze badges
5981 gold badge7 silver badges22 bronze badges
add a comment |
add a comment |
Got a question that you can’t ask on public Stack Overflow? Learn more about sharing private information with Stack Overflow for Teams.
Got a question that you can’t ask on public Stack Overflow? Learn more about sharing private information with Stack Overflow for Teams.
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.
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%2f55366439%2fupdating-a-value-that-is-dependent-on-a-newly-updated-document-key%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
Possible duplicate of How to limit an array size in MongoDB?
– OzW
Mar 27 at 11:10