-1

I have a collection like this.

 {
"_id": "6137392141bbb7723",
"email": "[email protected]",
"lastname": "Cagle",
"firstname": "Brooke",
"phonenumber":9000000001
},
{
"_id": "6137392141bbe30723",
"email": "[email protected]",
"lastname": "Cagle",
"firstname": "Brooke",
"phonenumber":9000000002`
}

Aim is to update the phonenumber field with 91. i want to insert 91 infront each and every phonenumber of users.

{
"_id": "6137392141bbb7723",
"email": "[email protected]",
"lastname": "Cagle",
"firstname": "Brooke",
"phonenumber":919000000001
},
{
"_id": "6137392141bbe30723",
"email": "[email protected]",
"lastname": "Cagle",
"firstname": "Brooke",
"phonenumber":919000000002
}

im trying with updateMany

const doc = await User.updateMany(
            {}, 
            { $set: { 
                //missing here
              }},
            {
                new: true, 
                runValidators : true
            });```
4
  • Hello, first I want to ask about the data. Is it from MongoDB or just a JSON file ? Commented Jan 17, 2022 at 10:12
  • Does this answer your question? Modify object property in an array of objects Commented Jan 17, 2022 at 10:13
  • You ask how to add a number to a integer field using nodejs but your attempt is not node but mongo Commented Jan 17, 2022 at 10:21
  • 1
    You might not want to use a number type for phone number fields - I would probably prefer a string type. See en.wikipedia.org/wiki/E.164 Commented Jan 17, 2022 at 10:24

3 Answers 3

0

I'm not sure that it's the best solution, but

parseInt('91' + user.phonenumber.toString())
Sign up to request clarification or add additional context in comments.

Comments

0

EITHER add 910000000000

data.forEach(item => item.phonenumber += 910000000000)

OR

concatenate "91" and convert the string back to number

data.forEach(item => item.phonenumber = +("91"+item.phonenumber))

const data =  [{
"_id": "6137392141bbb7723",
"email": "[email protected]",
"lastname": "Cagle",
"firstname": "Brooke",
"phonenumber":9000000001
},
{
"_id": "6137392141bbe30723",
"email": "[email protected]",
"lastname": "Cagle",
"firstname": "Brooke",
"phonenumber":9000000002
}]

data.forEach(item => item.phonenumber += 910000000000)
console.log(data)

Comments

0

Let Suppose that you have a data from as an array

[{
"_id": "6137392141bbb7723",
"email": "[email protected]",
"lastname": "Cagle",
"firstname": "Brooke",
"phonenumber":919000000001
},
{
"_id": "6137392141bbe30723",
"email": "[email protected]",
"lastname": "Cagle",
"firstname": "Brooke",
"phonenumber":919000000002
}]

First of all, you need to parse it to JavaScript, if it's a file you require fs module to be able to extract the data.

// parse to js
const array = JSON.parse(data);
const formattedArray = array.map( user => ({...user, phonenumber:  Number(`91${user. phonenumber}`) })) 
const newData = JSON.stringify(formattedArray)

That is it, I hope it can help you

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.