1 year ago

#76433

test-img

Arleen Silva

Node, Mongoose search inside nested object

I have the following Schema:

@Schema()
export class Category extends Document {
  @Prop({ required: 'Category name is required' })
  name: string;

  @Prop({ default: true })
  active: boolean;
}

export const CategorySchema = SchemaFactory.createForClass(Category);

And another one that imports this one:

@Schema()
export class Skill extends Document {
  @Prop({ required: 'Skill name is required' })
  name: string;

  @Prop({ default: true })
  active: boolean;

  @Prop()
  category: typeof CategorySchema;

}

export const SkillSchema = SchemaFactory.createForClass(Skill);

And the following query to find the data:

let objects = await this.model
    .find(options)
    .collation({ locale: "pt" })
    .exec();

Everything seems to work, but when I call passing the options to search for the nested object id it doesn't find anything:

 const options = {
      'category._id': id,
      active: true,
    };

When I query other property than the nested id, it seems to work fine:

 const options = {
      'category.name': 'test',
      active: true,
    };

So, maybe my schema is wrong? Any clues here?

javascript

node.js

mongoose

mongoose-schema

0 Answers

Your Answer

Accepted video resources