長條貓窩

Back

(Legacy)

Mongoose Model#

環境設定#

這是這次實驗用的 code

const mongoose = require('mongoose');
mongoose
	.connect('mongodb://127.0.0.1:27017', { useNewUrlParser: true, useUnifiedTopology: true })
	.then(() => console.log('Connected to DB'))
	.catch(e => console.error(e));

const requiredString = {
	type: String,
	required: true,
};
const UserSchema = new mongoose.Schema({
	username: requiredString,
	password: requiredString,
});

const UserModel = mongoose.model('User', UserSchema);
js

mongo db 用 docker 開一個實驗用的 server

version: '3'
services:
    db:
        image: 'mongo'
        container_name: 'aurl-mongodb'
        volumes:
            - ./data/mongo:/data/db
            - ./data/dump:/dump
        ports:
            - '27017:27017'
plaintext

取得原 schema#

在一般操作的時候都是用 UserModel 在操作資料庫,當要取得 schema 的時候當然也是從他裡面找最方便,當然也可以把 schema 特別弄出來,但是有點麻煩,以這次的例子說明,原本的 UserSchema 會存在 UserModel.schema.obj 裡。

真實資料庫結構#

在建立 model 後 mongoose 會自動新增一些欄位,例如說 _id 之類的,要取得包含這些欄位的真實 model 結構的話可以在 UserModel.schema.tree 找到

Mongoose Model
https://blog.simbafs.cc/blog/mongoose-model/
Author Simba Fs
Published at November 10, 2020