12

I have this existing document in a collection Article in MongoDB database:

[ { site: 'www.atlantico.fr',
date: '2014-05-27T11:10:19.000Z',
link: 'http://www.atlantico.fr/example.html',
_id: 538473817eb00f082f4803fc,
__v: 0} ]

I want to add a new field day with value 'example' to this document, using Mongoose in Node.js. So I do:

Article.update(
      { link: 'http://www.atlantico.fr/example.html'}, 
      { $set : {day : 'example'} }, 
       function(err){  
                    });

But it does not work because when I query the document after that, no new field day appears...

I must have made a mistake when using update or $set in Mongoose, but I cannot find exactly my mistake.

What am I missing? Thanks!

2
  • 1
    Please show mongoose model for Article Commented May 30, 2014 at 16:41
  • At the beginning I did not have day field in the schema and in the model. Commented May 30, 2014 at 20:14

3 Answers 3

17

try

Article.update(
     {link: 'http://www.atlantico.fr/example.html'}, 
     {day : 'example' },
     {multi:true}, 
       function(err, numberAffected){  
       });

and don't forget to add day to schema.

Sign up to request clarification or add additional context in comments.

1 Comment

the reminder to get it in the schema was particularly useful.
4
await Users.updateOne( {link: 'http://www.atlantico.fr/example.html'},{ $set: { day : 'example'} }, { multi: true });
  • update is deprecated
  • use await for db operation
  • if you want to add new filed in collection ,first check it is added in Model or not (if you don't wan't use that filed as mandatory make is as "required: false")

Comments

0
Article.findByIdAndUpdate(id, { $set: { day: 'example' }}, { new: true }, function (err, article) {
  if (err) return handleError(err);
  res.send(article);
});

I prefer this way because it's contains a callback function.

reference and more info: http://mongoosejs.com/docs/documents.html

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.