https://mongoosejs.com/docs/documents.html
https://mongoosejs.com/docs/index.html
$ npm install mongoose --save
// 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);
});
};
lean() ⇒ 啟用lean()選項會使mongoose直接返回js object
Product.find()
.lean()
.then((products) => {})
find().populate() ⇒ 選擇DB資料要指定回傳的元素
find().selecti
Product.find()
.populate("userId", "name")
.then((products) => {})