In my collection, I have groups where they can limit the members within. I want to query all groups that have enough spaces left by a number given in a search form. I use mongoose and node for my API.
So when in a group are 2 members, the limit 3 and the user searches for 2 places left in a group. This group won't show, but any other.
How do I query this? I already found something like query.$expr = { $gt: [{ $strLenCP: "$members" }, params.searchValue /*2 in my example*/ ] };
but I dont really understand that.
Here my mongoose Schema:
let GroupSchema = new Schema({
name: {
type: String,
required: true
},
status: {
type: String,
required: true
},
game: {
type: Schema.Types.ObjectId,
ref: 'Games',
required: true
},
alias: {
type: String,
required: true,
unique: true
},
owner: {
type: Schema.Types.ObjectId,
ref: 'User'
},
range: Number,
image: String,
description: String,
members: [{
type: Schema.Types.ObjectId,
ref: 'User'
}],
updated: Date,
created: Date
});