'Mongoose findOneAndUpdate don´t update and don´t throw an error

i have a two documents < Users and Poles > stored in my database on mongodDB Cluster . so basically a poles act like a team of Users . what i want is every time when a user want to join a pole his name will be pushed into a members array so i created a nested route in express to do this the structure is will be /poles/:poleid/adduser/:userid and i hade a problem even when i tried with $addToSet instead of $push. so my problem is that mongoose don't throw an error and don't update and the console log "Successfully patched pole."

this is my Two Models

const mongoose = require("mongoose");
const Schema = mongoose.Schema;

const Pole = new Schema({
  name: {
    type: String,
    default: "",
  },
  members: [{
    id: {
        type: mongoose.Schema.Types.ObjectId,
        ref: "User"
    },
    username: String,
    role: String,
    joined : {
      type : Date,
      default : () => Math.floor(Date.now() / 1000)
    } ,
    approved : {
      type : Boolean,
      default : false
    }
}],
},
{ timestamps: true });

module.exports = mongoose.model("Pole", Pole);

 const mongoose = require("mongoose");
const Schema = mongoose.Schema;

const passportLocalMongoose = require("passport-local-mongoose");

const Session = new Schema({
  refreshToken: {
    type: String,
    default: "",
  },
});

const User = new Schema({
  firstName: {
    type: String,
    default: "",
  },
  lastName: {
    type: String,
    default: "",
  },
  email: {
    type: String,
    default: "",
  },
  authStrategy: {
    type: String,
    default: "local",
  },
  socialAccounts : [{
    type: String,
    default: "",
  }],
pole: {
       id:{
             type: mongoose.Schema.Types.ObjectId,
             ref: "Pole"
       },
       name: String,
  },
// many to many relationship 
Project: [{
  id:{
        type: mongoose.Schema.Types.ObjectId,
        ref: "Project"
  },
  name: String,
}],
Event: [{
  id:{
        type: mongoose.Schema.Types.ObjectId,
        ref: "Event"
  },
  name: String,
}],
Training: [{
  id:{
        type: mongoose.Schema.Types.ObjectId,
        ref: "Training"
  },
  name: String,
}],
Task: [{
  id:{
        type: mongoose.Schema.Types.ObjectId,
        ref: "Task"
  },
  name: String,
}],   
refreshToken: {
    type: [Session],
  },
},
{
 timestamps: {
    createdAt: 'created_at', // Use `created_at` to store the created date
    updatedAt: 'updated_at' // and `updated_at` to store the last updated date
  }
}
);
//Remove refreshToken from the response
User.set("toJSON", {
  transform: function (doc, ret, options) {
    delete ret.refreshToken;
    return ret;
  },
});

User.plugin(passportLocalMongoose);
module.exports = mongoose.model("User", User);


and this is my poles route

var express = require('express');
var router = express.Router();
var addUserRouter = express.Router();
var Pole = require("../models/pole");
var User = require("../models/user");


addUserRouter.route("/:userid")
.put((req, res)=>{
  const poleid = req.poleid ;
  console.log(`pole id is fetched from server as ${poleid}`)
  const userid = req.params.userid ;
  console.log(`pole id is fetched from server as ${userid}`)
  let username = null;
  User.findOne({_id: userid}, (err, foundUser)=>{
    if(foundUser){
      console.log(`firstname is fetched from server as ${foundUser.firstName}`);
      console.log(`lastname id is fetched from server as ${foundUser.lastName}`);
      username = `${foundUser.firstName} ${foundUser.lastName}`
    }else{console.log("No username matching that id was found.");}
    
  });
  Pole.findOneAndUpdate(
    {id: poleid},
    {$push: { members: {
      id : req.params.userid,
      name : username,
      role : "member",
    } }},
    {useFindAndModify:false},
    (err)=>{
      (!err)? console.log("Successfully patched pole."):console.log(err);
      }
  );

});
router.use('/:poleid/adduser', (req, res,next) => {
  req.poleid = req.params.poleid;
  next();
},addUserRouter);

and even whenn i try log my react fetch response i don't get anything and when i stop the server i got PUT http://localhost:8081/poles/6267fce2a05b99e4fe4687eb/adduser/625f63a90b054a02b75a05a4/ net::ERR_CONNECTION_REFUSED

    fetch(process.env.REACT_APP_API_ENDPOINT + `poles/${poleid}/adduser/${userid}/`, {
      method: "PUT",
      headers: {
        "Content-Type": "application/json",
      },
    }).then(async (response) => {
       console.log(response);
       if (response.ok) {
         console.log("successfuly sent")
       } 
    }).catch(err => {
     <p>{err}</p>
   })


Solution 1:[1]

thank you guys for all of your comments it was the filter that I m using in findOneAndUpdate id instead of _id so the correct form is

Pole.findOneAndUpdate(
{_id: poleid},
{$push: { members:...

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Goldzpro