Home > database >  How to update some collection with different query parameters and with different set values?
How to update some collection with different query parameters and with different set values?

Time:08-29

I have an array of mongoDB collection -

 [

    {
      "_id": "630499244683ed43d56edd06",
      "userId": "630499234683ed43d56edd05",
      "isPaid": "true"
    },
  
    {
      "_id": "6304c19bda84477b41b4bbfa",
      "userId": "630499234683ed43d56edd05",
      "isPaid": "true"
    },
  
    {
      "_id": "6304c1b5da84477b41b4bbfb",
      "userId": "630499234683ed43d56edd05",
      "isPaid": "true"
    },
    {
      "_id": "6304c1cbda84477b41b4bbfc",
      "userId": "630499234683ed43d56edd05",
      "isPaid": "true"
    },
]

I just want to add the order property to all the object but for all the specific _id I need to add the different order value

Like this -

 [

    {
      "_id": "630499244683ed43d56edd06",
      "userId": "630499234683ed43d56edd05",
      "isPaid": "true",
      "order": 7
    },
  
    {
      "_id": "6304c19bda84477b41b4bbfa",
      "userId": "630499234683ed43d56edd05",
      "isPaid": "true",
      "order": 5
    },
  
    {
      "_id": "6304c1b5da84477b41b4bbfb",
      "userId": "630499234683ed43d56edd05",
      "isPaid": "true",
      "order": 0,
    },
    {
      "_id": "6304c1cbda84477b41b4bbfc",
      "userId": "630499234683ed43d56edd05",
      "isPaid": "true",
      "order": 2
    },
]

Please let me know How do I implement this approach in mongoDB? I'm not using mongoose in my project.

CodePudding user response:

You have to add the structure of the coming data, how it grouped with _id and the count of order. If it is an array of object, you can use loop. I don't think there is a solution to update different values in only one code.

CodePudding user response:

If you want specific ids to have specific order values you need to update them separately. You could use bulkWrite with the updateOne method.

   db.collection.bulkWrite( [
      { updateOne: {
         filter: { _id: ... },
         update: { $set: { order: 1 } }
      } },
      ...
   ] )

Refer to the MongoDB documentation and to your language driver in particular: https://www.mongodb.com/docs/v6.0/reference/method/db.collection.bulkWrite/#updateone-and-updatemany

  • Related