"What is the most efficient way to update a specific subfield within an object field in MongoDB when provided with both the parent and child

I need help updating a specific comment within a parent object in my database.

const QuestionSchema = mongoose.Schema({    //_id1
  ...
  ...
  comment: [{                               //_id2
          commentBody: String,
          ...
          ...
           }]
  }]

The schema above shows the structure, and I am trying to update the commentBody of a particular field within the "comment" object. The parent question's ID is represented by <_id1> and the comment's ID is represented by <_id2>.
I have attempted to do this as a beginner but it is not working. Please help me identify any syntactic or logical errors in this code.

const updatedQuestioncomment = await Questions.findByIdAndUpdate({ "_id": _id1 }, { "comment._id": id2 }, { $set: { 'comment': [{ 'commentBody': commentBody }] } });

Your assistance is much appreciated!

Answer №1

I think this is exactly what you are looking for...

const document = await Question.findByIdAndUpdate(
  {'_id': _identifier1, 'comment._id': identifier2},
  { '$set': { 'comment.$.content': 'UPDATED!' } }
);

Similar questions

If you have not found the answer to your question or you are interested in this topic, then look at other similar questions below or use the search

React scroll not triggering class changes

In the function handleScroll, I am attempting to add a class of red when scrolling down to a specific limit, otherwise applying a class of blue. However, it seems that it is only entering the else statement and also logging undefined for e.target.scrollTop ...

Utilize Moment in React-Native to adjust the time zone format for the Vi Locale

I'm encountering a date formatting issue while using Moment in React-Native. Specifically, I have formatted the date to an English locale, but now I want it to also support the Vietnamese locale: Moment('2022-09-02T02:00:00+00:00') . ...

The submission of the form proceeds even with the warning displayed

I am facing an issue with a form that consists of one text field and a submit button. The user is required to input a 3-digit number, and if the number is greater than 200, a warning should be displayed. If the user clicks OK, the form should be submitted. ...

The ID provided does not match the format of a Function Type

Click here for the image import {MongoClient, ObjectId} from "mongodb"; async function handler(req, res){ if(req.method === "POST"){ const data = req.body; const client = await MongoClient.connect("mongoDB URL&q ...

Adding a JSON object to an existing document in MongoDB without generating a new entry (non-array)

I have a pre-existing Json object stored in my mongodb database. { "appname":"abcd", "appId":"E3456", "modules":{ "sales":{ "apis":{ "get all sales":{ "method":"get", "access_ctrl_level" ...

Preventing Event Bubbling with Hammer.js 2.0: A Step-by-Step Guide

I have a situation with a parent and child div. I want to prevent panning or dragging on the child from affecting the parent. I came across a similar question that was asked a year ago, but I am using a newer version of Hammer.js with the jQuery wrapper. ...

What is the process for validating a jQuery/AJAX form?

Can someone help me with validating my sign-up form? Even when there is no data entered, it still gets added to the database whenever the submit button is pressed. Here's my current code: <form id="signupform" class="form" method="post" action="#" ...

Creating a Vue.js component during the rendering process of a Laravel Blade partial view

In my Vue.js project, I have a component that is used in a partial view called question.blade.php: {{--HTML code--}} <my-component type='question'> <div class="question">[Very long text content...]</div> </my-component& ...

Having trouble understanding why getStaticProps function is not loading before the main exported function

When I use npm run dev to troubleshoot this issue, it utilizes getStaticProps to process various d3 properties before injecting them into the main output function during runtime. However, it seems that getStaticProps is not running as expected - a consol ...

Error encountered on Windows 10 version 10.0.19044 during library installation with npm

I've encountered an error while trying to run or install libraries for a project within our organization. E:\GIT\bookshelf>npm install npm WARN deprecated <a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail= ...

Designing a layout for a chat application that is structured from the bottom up

I'm currently in the process of designing a web application for a chat platform. I have access to an API that provides a list of messages: chatsite.com/api/thread/1/messages/ [ { "id": 2, "sender": { "id": 2, ...

Increase the value of p by 1 every time the divis button is clicked

<div id="main"> <div id="rating"> <div> <img src=""/> <p><span id="number">0</span></p> </div> </div> <div id="main"> I am looking for a way to increase the number displaye ...

SyntaxError: An invalid character was encountered (at file env.js, line 1, column 1)

This marks my debut question so kindly indulge me for a moment. I recently stumbled upon a guide that outlines how to dynamically alter environment variables in a React project without the need for re-building. You can find the guide here. The method work ...

Tips for transforming my Node.js application into a sleek single-page Angular application

I was using a JavaScript app with the MEAN stack without even knowing what it was. The issue I am facing is that I currently follow a more common web approach, where I don't handle my routing in Angular but rather opt for traditional full page reloadi ...

Guide on transferring JavaScript Objects from the Front End to Spring Boot Back-end and effectively processing and parsing them

After struggling with this issue repeatedly while developing my web apps, I've reached a breaking point and need some help. My frustration might come across as venting, but I'm genuinely stuck. The challenge I'm facing is sending key-value ...

Upon initiating a refresh, the current user object from firebase Auth is found to be

Below is the code snippet from my profile page that works perfectly fine when I redirect from the login method of AuthService: const user = firebase.auth().currentUser; if (user != null) { this.name = user.displayName; this.uid = user.uid; } e ...

Using JQuery selectors in conditional statements

In the context of my webpage, clicking on a tag filters and displays corresponding posts. I now need to handle pagination to navigate to the next set of posts. However, I am facing difficulties with the JavaScript if statement in jQuery, where I struggle ...

"Encountering Issues with Angular's Modules and EntryComponents during Lazy Loading

Upon lazy loading an Angular module, I encountered an issue when trying to open my DatesModal that resulted in the following error: No component factory found for DatesModal. Have you included it in @NgModule.entryComponents? The declaration and entryCom ...

I am interested in having a bilingual link on the main page that directs users to the corresponding page in Spanish or English, rather than back to the homepage

I am currently working on a Visual Studio C# .NET project that has both English and Spanish versions. Each version has its own master template with a link to switch between languages. However, clicking on the language link takes me to the homepage of the c ...

The application runs smoothly during development, but encounters issues once deployed on Heroku

I am encountering an issue while deploying my app on Heroku. The deployment process goes smoothly, but when I try to open the app, I receive the following error message: Application error An error occurred in the application and your page could not be ser ...