我正在与节点、 Mongoose 和MongoDB合作。
我有一个用户,它可以与俱乐部有多个关联。我需要返回与“俱乐部A”有有效关联的所有用户
所以,我有:
@Schema()
export class User {
_id: string;
@Prop({
type: [ClubAssociationSchema],
})
associations: ClubAssociation[] = [];
}
关联模式为:
@Schema()
export class ClubAssociation {
_id: string;
@Prop({
type: mongoose.Schema.Types.ObjectId,
ref: 'Club',
required: true,
})
club: Club;
@Prop({ required: true, default: false })
valid: boolean;
@Prop({ required: true })
number: string;
}
为了返回俱乐部A中具有有效关联的所有项目,我会:
const items = await this.model
.find(
{
$and: ['associations.club': xxxxx, 'associations.valid': true],
})
这将返回与以下有效项具有ANY关联的所有用户:true,并且与俱乐部A的关联,即使它有效:因此,它正在检查与俱乐部A具有关联并且具有有效的:真关联,但是否有效无关紧要:true是针对俱乐部A或针对任何其它俱乐部。
1条答案
按热度按时间aurhwmvo1#
可以使用
$elemMatch
运算符来匹配包含数组元素的文档,该数组元素与同一嵌套字段上的多个条件相匹配。F.e:
此查询将匹配至少有一个关联同时满足这两个条件的用户