Search code examples
mongodbmongoosemongodb-querymongoose-schema

Mongoose query an array contain one of value in another array


How do I check if an element of an array belongs to another array in Mongoose? For example, I have a document:

const userSchema = new mongoose.Schema({
name: String,
favor:Array
})

user1 = {
name:'John',
favor : ['banana', 'apple', 'eggs'].
}

user 2= {
name:'Ethan',
favor : ['apple', 'eggs'].
}

and I have an Array

const array = ['eggs', 'banana']

I want to get user1. How can I do with mongoose?


Solution

  • You should use $all operator for this scenario

    db.collection.find({
      favor: {
        $all: [
          "eggs",
          "banana"
        ]
      }
    }) 
    

    https://docs.mongodb.com/manual/reference/operator/query/all/