mongoose學習筆記1--基礎知識2

Schema簡述

Schema —— 一種以文件形式存儲的數據庫模型骨架,沒法直接通往數據庫端,也就是說它不具有對數據庫的操做能力,僅僅只是數據庫模型在程序片斷中的一種表現,能夠說是數據屬性模型(傳統意義的表結構),又或着是「集合」的模型骨架。javascript

那如何去定義一個Schema呢,請看示例:java

 

var mongoose = require("mongoose");
 
var TestSchema = new mongoose.Schema({
name : { type:String },//屬性name,類型爲String
    age : { type:Number, default:0 },//屬性age,類型爲Number,默認爲0
    time : { type:Date, default:Date.now },
email: { type:String,default:''}
});

        注:基本屬性類型有:字符串、日期型、數值型、布爾型(Boolean)、null、數組、內嵌文檔等。mongodb

Model簡述

Model —— 由Schema構造生成的模型,除了Schema定義的數據庫骨架之外,還具備數據庫操做的行爲,相似於管理數據庫屬性、行爲的類。數據庫

如何經過Schema來建立Model呢,以下示例:數組

var db = mongoose.connect("mongodb://127.0.0.1:27017/test");
 
// 建立Model
var TestModel = db.model("test1", TestSchema);

  

test1:數據庫中的集合名稱,當咱們對其添加數據時若是test1已經存在,則會保存到其目錄下,若是未存在,則會建立test1集合,而後在保存數據。mongoose

擁有了Model,咱們也就擁有了操做數據庫的金鑰匙,在後面的課程中,咱們就會學習使用Model來進行增刪改查的具體操做,因此,必定要熟悉他的建立格式喲!學習

若是你想對某個集合有所做爲,那就交給Model模型來處理吧,建立一個Model模型,咱們須要指定:1.集合名稱,2.集合的Schema結構對象,知足這兩個條件,咱們就會擁有一個操做數據庫的金鑰匙。ui

Entity簡述

Entity —— 由Model建立的實體,使用save方法保存數據,Model和Entity都有能影響數據庫的操做,但Model比Entity更具操做性。spa

使用Model建立Entity,以下示例:對象

var TestEntity = new TestModel({
name : "Lenka",
age : 36,
email: "lenka@qq.com"
});
console.log(TestEntity.name); // Lenka
console.log(TestEntity.age); // 36

  注:建立成功以後,Schema屬性就變成了Model和Entity的公共屬性了。

建立集合

基於前面的課程,接下來咱們就開始學習對數據的具體操做了,下面是關於一些基礎數據的定義,相信對於你來講已經不陌生了,請再仔細溫習一遍吧!

var mongoose = require("mongoose");
var db = mongoose.connect("mongodb://127.0.0.1:27017/test");
var TestSchema = new mongoose.Schema({
name : { type:String },
age : { type:Number, default:0 },
email: { type:String },
time : { type:Date, default:Date.now }
});
var TestModel = db.model("test1", TestSchema );
var TestEntity = new TestModel({
name : "helloworld",
age : 28,
email: "helloworld@qq.com"
});
TestEntity.save(function(error,doc){
if(error){
console.log("error :" + error);
}else{
console.log(doc);
}
});

  注:爲了方便後面課程的學習和提升學習效率,如下基礎數據均和後面課程緊密相連,因此必須按照如下結構方式來定義,請勿修改(默認數據庫爲test,集合爲test1)

總結:

1. Schema:數據庫集合的模型骨架,或者是數據屬性模型傳統意義的表結構。

2. Model :經過Schema構造而成,除了具備Schema定義的數據庫骨架之外,還能夠具體的操做數據庫。

3. Entity:經過Model建立的實體,它也能夠操做數據庫。

相關文章
相關標籤/搜索