https://mongoosejs.com/docs/documents.html

安裝mongooes

https://mongoosejs.com/docs/index.html

$ npm install mongoose --save

連結mongoose

// getting-started.js
// app.js
const mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/test', {useNewUrlParser: true, useUnifiedTopology: true});

mongoose.Schema() ⇒ 定義傳入產品格式

// models/product
const mongoose = require("mongoose");

const productSchema = new mongoose.Schema({
  // required => 必填
  title: { type: String, required: true },
  imageUrl: { type: String, required: true },
  price: { type: Number, required: true },
  description: { type: String, required: true },
});

module.exports = mongoose.model("Product", productSchema);
// controllers/admin
exports.postAddProduct = (req, res, next) => {
  const title = req.body.title;
  const imageUrl = req.body.imageUrl;
  const price = req.body.price;
  const description = req.body.description;

  const product = new Product({ title, imageUrl, price, description });
  product
    .save()
    .then((result) => {
      res.redirect("/admin/products");
    })
    .catch((err) => {
      console.log("admin product 錯誤", err);
    });
};

mongoose model方法

find() ⇒ get資料,查詢資料

findByIdAndDelete() ⇒ 刪除資料

lean() ⇒ 啟用lean()選項會使mongoose直接返回js object

Product.find()
    .lean()
    .then((products) => {})

find().populate() ⇒ 選擇DB資料要指定回傳的元素

find().selecti

Product.find()
		.populate("userId", "name")
    .then((products) => {})

mongoose methods ⇒ mongoose實例方法