몬godb aggregate를 사용하여 종류별 제품 수량 얻기

1530 단어
한 프로젝트에서 안드로이드 개발자가 저에게 api를 달라고 했습니다. 이것은 제품 종류와 각 종류의 제품 수량을 표시할 수 있습니다. 몬godb에서 이api를 만드는 가장 좋은 방법은aggregateoperator입니다.
이것은 내 분류 모드입니다.
const mongoose = require("mongoose");
const { s, rs, n, ref } = require("../utils/mongo");

var schema = new mongoose.Schema(
  {
    user: ref("user"),
    name: { ...rs, unique: true },
    description: s,
    image: s,
    view: {
      ...n,
      default: 0,
    },
  },
  { timestamps: true }
);

module.exports = mongoose.model("category", schema);
밑에서 제 컨트롤러를 보실 수 있어요.
module.exports = {
  getAll: async (req, res) => {
    await Category.aggregate([
        {
          $lookup: {
            from: "products",
            localField: "_id",
            foreignField: "categories",
            as: "products",
          },
        },
        {
          $project: {
            _id: 1,
            name: 1,
            products: { $size: "$products" },
            description: 1,
            view: 1,
            createdAt: 1,
            updatedAt: 1,
          },
        },
      ]).exec(function (err, result) {
        if (err) throw err;
        res.send(result);
      });
  },
이것은 우체부의 결과이다

좋은 웹페이지 즐겨찾기