Данные, которые должны быть извлечены из Атласа, содержат 3 документа (Schema-categorySchema), каждый документ хранит массив идентификаторов объектов другого документа (Schema-subCategorySchema)
{"_id":{"$oid":"5f055f4b00bde224583e35cf"},"name":"cat1","sub_categories":[],"__v":0}
{"_id":{"$oid":"5f055f5700bde224583e35d0"},"name":"cat2","sub_categories":[{"_id":{"$oid":"5f05a8633ca5a141d45c2dee"},"subcatergory_id":{"$oid":"5f05a8633ca5a141d45c2ded"}},{"_id":{"$oid":"5f05ab45f69e0435b81ff560"},"subcatergory_id":{"$oid":"5f05ab44f69e0435b81ff55f"}}],"__v":2}
{"_id":{"$oid":"5f058108f14eba3aa067e7a0"},"name":"Veg1","sub_categories":[],"__v":0}
Схема указана ниже для приведенных выше данных.
const categorySchema = new Schema({ name: { type: String, required: true, }, sub_categories: [ { subcatergory_id: { type: Schema.Types.ObjectId, required: true, ref: "SubCategory", }, }, ], });
Я ожидаю заполнить 3 документа вместе с данными, на которые ссылается массив ObjectId.
Как написать запрос для получения вывода на основе упомянутой модели?
Я написал запрос, как показано ниже, но он не работает.
exports.getCategoryList = (req, res, next) => {
Category.find().then((categories) => {
console.log(categories.sub_categories);
if (categories) {
res.json({ "Category List": categories.sub_categories });
} else {
res.send("Empty Category List");
}
}).catch((err) => res.send("error:" + err));
};