Help... Moongose remove()

Folks my code does not work for some reason, i try and try but not passed the test
i put this code in myApp.js
but i do not passed the test.
somebody knows why?

const removeManyPeople = (done) => {
  const nameToRemove = "Mary";
  Person.deleteMany({name: nameToRemove}, (err, response) => {
    if(err) return console.log(err);
    done(null, response.deletedCount);
  })
};

This print in my console:
(node:5764) [MONGODB DRIVER] Warning: collection.remove is deprecated. Use deleteOne, deleteMany, or bulkWrite instead.
SyntaxError: Unexpected token o in JSON at position 1
at JSON.parse ()
at /home/runner/boilerplate-mongomongoose/server.js:346:29
at /home/runner/boilerplate-mongomongoose/node_modules/mongoose/lib/model.js:4919:18

Your project link(s)

solution:

require('dotenv').config({ path: 'uriDB.env' });
const mongodb = require("mongodb");
const mongoose = require("mongoose");
const {Schema} = mongoose;
mongoose.connect(process.env.MONGO_URI)


const personSchema = new Schema({
  name : String,
  age : Number,
  favoriteFoods : [String]
});


var Person = mongoose.model("Person", personSchema);

const createAndSavePerson = (done) => {
  var janeFonda = new Person({name:"Jane Fonda", age: 84, favoriteFoods:["eggs", "fish", "fresh fruit"]})

  janeFonda.save(function(err, data){
    if(err) return console.error(err)
    done(null,data);
  });  
};

var arrayOfPeople = [
    {name:"Jane Fonda", age: 84, favoriteFoods:["eggs"]},
    {name:"Jane Fonda", age: 84, favoriteFoods:["fish"]},
    {name:"Jane Fonda", age: 84, favoriteFoods:["fresh fruit"]}
  ];

const createManyPeople = (arrayOfPeople, done) => {
  Person.create(arrayOfPeople, function(err, person){
    if(err) return console.log(err);
    done(null,person);
  });
};

const findPeopleByName = (personName, done) => {
  Person.find({name: personName}, function(err, ser){
    if(err) return console.log(err);
    done(null, ser);
  })
};

const findOneByFood = (food, done) => {
  Person.findOne({favoriteFoods: food}, function(err, ser){
  if(err) return console.log(err)
  done(null,ser);
  })
};

const findPersonById = (personId, done) => {
  Person.findById({ _id : personId }, function(err, ser){
    if(err) return console.log(err)
  done(null, ser);
  })
};

const findEditThenSave = (personId, done) => {
  var foodToAdd = "hamburger";
 Person.findById({ _id : personId}, function(err, person){
    if(err) return console.log(err)
    person.favoriteFoods.push(foodToAdd);
    person.save(function(err, updatePerson){
    if(err) return console.log(err);
    done(null,updatePerson)
  })  
  })
};

// const findAndUpdate = (personName, done) => {
//   const ageToSet = 20;
//   Person.findOne({ name : personName }, (err, person) =>{
//   if(err) return console.log(err)
//   person.age = ageToSet;
//   person.save((err, updatePerson)=>{
//     if(err) return console.log(err)
//     done(null,updatePerson);
//   })
//   })
// };

const findAndUpdate = (personName, done) => {
  const ageToSet = 20;
  Person.findOneAndUpdate({ name : personName },{ age : ageToSet}, {new : true}, (err, updateDocument) =>{
    if(err) console.log(err)
    done(null, updateDocument)
  }
  )
};

const removeById = (personId, done) => {
    Person.findByIdAndRemove({ _id : personId }, (err, deleteDocument) =>{
    if(err) console.log(err)
    done(null, deleteDocument)
  }
  )
};

  // Person.findByIdAndRemove(
  //   personId,
  //   (err, removedDoc) => {
  //     if(err) return console.log(err);
  //     done(null, removedDoc);
  //   }
  // );

// const removeManyPeople = (done) => {
//   const nameToRemove = "Mary";
//   Person.removedMany({name: nameToRemove}, (err, response) => {
//     if(err) return console.log(err);
//     done(null, response);
//   })
// };

const removeManyPeople = (done) => {
  const nameToRemove = "Mary";
  Person.deleteMany({name: nameToRemove}, (err, response) => {
    if(err) return console.log(err);
    done(null, response.deletedCount);
  })
};


// const removeManyPeople = (done) => { const nameToRemove = "Mary"; Person.remove({name: nameToRemove}, (err, response) => { if(err) return console.log(err); done(null, response); }) };



//   Person.remove({name: nameToRemove}, (err, response) => {
  //   if(err) return console.log(err);
  //   done(null, response);
  // })

const queryChain = (done) => {
  const foodToSearch = "burrito";

  done(null /*, data*/);
};

/** **Well Done !!**
/* You completed these challenges, let's go celebrate !
 */

//----- **DO NOT EDIT BELOW THIS LINE** ----------------------------------

exports.PersonModel = Person;
exports.createAndSavePerson = createAndSavePerson;
exports.findPeopleByName = findPeopleByName;
exports.findOneByFood = findOneByFood;
exports.findPersonById = findPersonById;
exports.findEditThenSave = findEditThenSave;
exports.findAndUpdate = findAndUpdate;
exports.createManyPeople = createManyPeople;
exports.removeById = removeById;
exports.removeManyPeople = removeManyPeople;
exports.queryChain = queryChain;

Your browser information:

User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36

Challenge: Delete Many Documents with model.remove()

Link to the challenge:

1 Like

Hello!

From this thread:

3 Likes

now show me this in the console:

(node:7300) DeprecationWarning: current URL string parser is deprecated, and will be removed in a future version. To use the new parser, pass option { useNewUrlParser: true } to MongoClient.connect.
Your app is listening on port 3000
(node:7300) UnhandledPromiseRejectionWarning: Error: Invalid schema, expected mongodb or mongodb+srv
at module.exports (/home/runner/boilerplate-mongomongoose/node_modules/mongoose/node_modules/mongodb/lib/url_parser.js:24:21)
at deprecated (internal/util.js:89:15)
at connect (/home/runner/boilerplate-mongomongoose/node_modules/mongoose/node_modules/mongodb/lib/operations/connect.js:282:3)
at /home/runner/boilerplate-mongomongoose/node_modules/mongoose/node_modules/mongodb/lib/mongo_client.js:260:5
at maybePromise (/home/runner/boilerplate-mongomongoose/node_modules/mongoose/node_modules/mongodb/lib/utils.js:692:3)
at MongoClient.connect (/home/runner/boilerplate-mongomongoose/node_modules/mongoose/node_modules/mongodb/lib/mongo_client.js:256:10)
at /home/runner/boilerplate-mongomongoose/node_modules/mongoose/lib/connection.js:835:12
at new Promise ()
at NativeConnection.Connection.openUri (/home/runner/boilerplate-mongomongoose/node_modules/mongoose/lib/connection.js:832:19)
at /home/runner/boilerplate-mongomongoose/node_modules/mongoose/lib/index.js:351:10
at /home/runner/boilerplate-mongomongoose/node_modules/mongoose/lib/helpers/promiseOrCallback.js:32:5
at new Promise ()
at promiseOrCallback (/home/runner/boilerplate-mongomongoose/node_modules/mongoose/lib/helpers/promiseOrCallback.js:31:10)
at Mongoose._promiseOrCallback (/home/runner/boilerplate-mongomongoose/node_modules/mongoose/lib/index.js:1149:10)
at Mongoose.connect (/home/runner/boilerplate-mongomongoose/node_modules/mongoose/lib/index.js:350:20)
at Object. (/home/runner/boilerplate-mongomongoose/myApp.js:5:10)
(node:7300) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag --unhandled-rejections=strict (see Command-line options | Node.js v16.8.0 Documentation). (rejection id: 3)
(node:7300) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

and look this :rofl:
image

I solved!!!
i delete my cluster and create a new. in my last cluster i create by error two database one cluster and myfirstdatabase.

That is related to the mongo URL… Can you show me the URL you’re using but changing the user and password?

No, wait… You should be passing the response to the done function, not just the deletedCount: done(null, response)

@skaparate . Thank you very much. I was battling with this error since yesterday. Just changed mongoose from version 6 .0 to 5.13.8 and started replit.![
replitremove

2 Likes

No problem :slight_smile:!

By the way, welcome to the community :partying_face: and happy coding!

@skaparate . Thank you very much. I appreciate it.

2 Likes

you Sir are the GOAT!

1 Like