Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

210
Views
¿Cómo excluir más de un documento específico en mongoose?

Aquí, quiero excluir el documento del usuario que solicita la respuesta, así como todos aquellos usuarios a quienes el usuario ya envió solicitudes de amistad y los usuarios que ya son amigos del usuario, ¿cómo puedo lograr esto?

Desde el siguiente código, solo puedo excluir los datos del usuario, no los de otros.

 try {
 
 const {id} = req.params
 const user = await userModel.findById(id)
 
 const newresponse = await userModel.find({_id:user.friendRequests}).select("_id")
 
 const response = await userModel.find({_id:{"$ne":id}}).sort({creation_date:-1}).limit(5)
 return res.json({succcess:true, response, newresponse})
 } catch (error) {
 console.log(error); 
 }

modelo:

 const mongoose = require("mongoose");

const userSchema = new mongoose.Schema({
 firstname: String,
 lastname: String,
 password: String,
 email: {
 type: String,
 unique: true,
 },
 birthday: Date,
 creation_date: {
 type: Date,
 default: Date.now,
 },
 gender: String,
 profile_picture: {
 type: String,
 default: "",
 },
 friends:[{
 type:mongoose.ObjectId,
 ref:"userModel"
 }],
 friendRequests:[{
 type:mongoose.ObjectId,
 ref:"userModel"
 }]

});

module.exports = mongoose.model("userModel", userSchema);


almost 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Puede concatenar arrays de friends y friendRequests y pasar eso al filtro:

 const { id } = req.params;

const user = await userModel.findById(id, 'friends friendRequests');

const excludeUsersArray = user.friends.concatenate(user.friendRequests);
 
const response = await userModel.find({ _id: { "$nin": excludeUsersArray }}).sort({ creation_date:-1 });
 
return res.json({succcess:true, response})
almost 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!