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;








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
]);









share|improve this question
























  • Possible duplicate of How to limit an array size in MongoDB?

    – OzW
    Mar 27 at 11:10

















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
]);









share|improve this question
























  • Possible duplicate of How to limit an array size in MongoDB?

    – OzW
    Mar 27 at 11:10













0












0








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
]);









share|improve this question














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






share|improve this question













share|improve this question











share|improve this question




share|improve this question










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

















  • 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












1 Answer
1






active

oldest

votes


















0














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" )





share|improve this answer


























    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%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









    0














    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" )





    share|improve this answer































      0














      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" )





      share|improve this answer





























        0












        0








        0







        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" )





        share|improve this answer















        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" )






        share|improve this answer














        share|improve this answer



        share|improve this answer








        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





















            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.



















            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.




            draft saved


            draft discarded














            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





















































            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

            Obelisk of Theodosius Contents History Description Notes Bibliography Further reading External links Navigation menuAge of spirituality : late antique and early Christian art, third to seventh centuryOver 60 picturesObelisks of the World41°00′21.24″N 28°58′31.43″E / 41.0059000°N 28.9753972°E / 41.0059000; 28.97539727724550-7235741376235741376

            밀양 대씨 역사 각주 함께 보기 둘러보기 메뉴밀양 대씨

            1973년 목차 사건 문화 탄생 사망 노벨상 달력 둘러보기 메뉴