Mongoose: Remove object from array based on ID (Cast Error)

后端 未结 3 2232
天涯浪人
天涯浪人 2021-02-09 15:27

I have a model that looks like this:

mongoose.Schema({
  username: String,
  posts: [{ type: Schema.Types.ObjectId, ref: \'Post\' }]
});

I have

3条回答
  •  余生分开走
    2021-02-09 15:50

    This is because when you are running user findOne query it returns an object to you.(the findOne function returns only one object)
    
    User.findOne({ _id: req.user._id}, function(err, result) {
    
     /// result is an object
        result.pull({ _id: req.body.post_id });
      });
    
    and what is result.pull you are trying to pull an element from object this is the wrong way to do
    
    do like this 
    delete result._id;
    
    
    and if you want more elements from user query in from of array you can use 
    User.find({ _id: req.user._id}, function(err, result) {
    
    // result.slice for slice you can see this http://stackoverflow.com/questions/3396088/how-do-i-remove-an-object-from-an-array-with-javascript
      });
    
    then you can do slice on array of object
    

提交回复
热议问题