国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

MongoDB學習之Mongoose的使用

qieangel2013 / 1671人閱讀

摘要:文檔是的核心概念,是鍵值對的一個有序集,在里文檔被表示成對象。創建集合數據庫中的集合名稱當我們對其添加數據時如果已經存在,則會保存到其目錄下,如果未存在,則會創建集合,然后在保存數據。使用創建,如下示例連接成功許巍男保存成功保存失敗參考

mongoose簡介

mongoose網站:https://mongoosejs.com/

為什么要用Mongoose
Mongoose就是一個讓我們可以通過Node來操作MongoDB的一個模塊。
Mongoose本質是一個對象文檔模型(ODM)庫,
他對Node原生的MongoDB模塊進行了一部優化封裝,并且提供了更多的功能。
Mongoose的優勢

可以像操作對象一樣操作數據庫

可以為文檔創建一個模式結構(Schema)

可以對模型中的文檔/文檔進行驗證

數據可以通過類型轉換為對象模型

可以使用中間件來應用業務邏輯掛鉤

比Node原生的MongoDB驅動更容易

使用Mongoose

下載安裝mongoose模塊

cnpm install mongoose --save

引用mongoose:

var mongoose =require("mongoose");

使用"mongoose"連接數據庫:

var db =mongoose.connect("mongodb://user:pass@localhost:port/database");

執行下面代碼檢查默認數據庫test,是否可以正常連接成功?

var mongoose =require("mongoose");
var db =mongoose.connect("mongodb://localhost/m_data");
db.connection.on("error",function (error) {
   console.log("數據庫連接失敗:" + error);
});
db.connection.on("open",function () {
   console.log("數據庫連接成功!");
});
db.connection.once("close", ()=>{
    console.log("連接已經斷開成功!")
})
mongoose基本使用 mongoose的幾個新的對象

在MongoDB中,多個Document可以組成Collection(以下簡稱集合),多個集合又可以組成數據庫。我們想要操作MongoDB數據,那就得先要具備上面所說的包含數據的“文檔”,文檔又是什么意思呢,請看如下介紹。

文檔 —— 是MongoDB的核心概念,是鍵值對的一個有序集,在JavaScript里文檔被表示成對象。同時它也是MongoDB中數據的基本單元,非常類似于關系型數據庫管理系統中的行,但更具表現力。

集合 —— 由一組文檔組成,如果將MongoDB中的一個文檔比喻成關系型數據庫中的一行,那么一個集合就相當于一張表。

Schema—— 一種以文件形式存儲的數據庫模型骨架,無法直接通往數據庫端,也就是說它不具備對數據庫的操作能力,僅僅只是定義數據的類型,可以說是數據屬性模型(傳統意義的表結構),又或著是“集合”的模型骨架。

mongoose中任何任何事物都是從Schema開始的。每一個Schema對應MongoDB中的一個集合(collection)。Schema中定義了集合中文檔(document)的樣式。

定義一個Schema(表/ 模式對象)
//新建Schema 定義規則/字段的規則
let Schema= mongoose.Schema;
//定義personSchema的字段(規則)需要new一下 有點像構造函數的樣子
let personSchema= new Schema({
    name: String,
    sex: String,
    age: Number
});

基本屬性類型有

String

Number

Date

Boolean

Buffer

ObjectId

Mixed

Array

Model—— 由Schema構造生成的模型,根據Schema定義的數據類型規則,可操作具體的符合改規則的數據。

創建model(集合)
let personModel= mongoose.model("person", personSchema);

person:數據庫中的集合名稱,當我們對其添加數據時如果person已經存在,則會保存到其目錄下,如果未存在,則會創建person集合,然后在保存數據。

//4. 插入文檔
personModel.create({
    name: "張寧樂",
    sex: "男",
    age: 18
}, (err)=>{
   if(!err){
       console.log("插入成功!")
   }else{
       throw err;
   }
});
mongoose 插入和查詢

mongoose查找數據的一些方法:
https://mongoosejs.com/docs/a...

插入多條數據
personModel.create([
    {name:"張逗逗",age: 2,sex: "男"},
    {name:"牛嘻嘻",age: 2,sex: "女"}
], (err)=>{
   if(!err){
       console.log("插入成功!")
   }else{
       throw err;
   }
})
查詢

Model.find()

personModel.find({name: "張寧樂"}, (err, data)=>{
    if(!err){
        console.log(data)
    }else{
        throw err;
    }
})
查詢所有

Model.find({}, callback)

personModel.find({}, (err, data)=>{
    if(!err){
        console.log(data)
    }else{
        throw err;
    }
})

也可以選擇查找數據的條件(0隱藏 1顯示 id默認顯示) 和MongoDB在命令行中的使用方法一樣

//查詢時只顯示name 
personModel.find({}, {name: 1, _id: 0}, (err,data)=>{
    if(!err){
        console.log(data)
    }else{
        throw err;
    }
})

find() skip(查詢開始的位置)和limit(增加的條數)也可以使用

personModel.find({}, {name: 1, _id: 0, age: 1}, {skip: 0, limit: 2}, (err, data)=>{
    //只顯示name 和 age   從第1開始 每次查詢2條 
    if(!err){
        console.log(data)
    }else{
        throw err;
    }
})

MongoDB的find()、findOne() 等命令在 mongoose里都可以使用
具體可參考 :https://mongoosejs.com/docs/a...

mongoose 修改和刪除

參考: https://mongoosejs.com/docs/a...

修改方法:

Model.update()

Model.updateMany()

Model.updateOne()

Model.watch()

personModel.update({name: "張寧樂"}, {$set: {age: 20}}, (err, data)=>{
   if(!err){
       console.log("修改成功!")
       console.log(data)
   }else{
       throw err;
   }
})

刪除方法

Model.remove()

Model.deleteMany()

Model.deleteOne()

personModel.remove({name:"牛嘻嘻"}, (err)=>{
    if(!err){
        console.log("刪除成功!")
    }else{
        throw err;
    }
})
統計文檔條數

Model.count()

personModel.count({}, (err,count)=>{
    if(!err){
        console.log("查詢條數成功! 一共:" + count + "條");
    }else{
        throw err;
    }
})

Entity

Entity—— 由Model創建的實體,使用save方法保存數據,Model和Entity的操作都能影響數據庫的操作,但Model比Entity更具操作性。
使用Model創建Entity,如下示例:

let mongoose= require("mongoose");
let db= mongoose.connection("mongodb://localhost/m_data");
db.on("open", ()=>{
    console.log("連接成功!")
})
let Schema= mongoose.Schema;
let personSchema= new Schema({
    name: String,
    sex: String,
    age: Number
});
let personModel= mongoose.model("person", personSchema);
let personEntity = new personModel({
    name: "許巍",
    sex: "男",
    age: 38
})
personEntity.save((err, person)=>{
    if(!err){
        console.log("保存成功!")
        console.log(person);
    }else{
        console.log("保存失敗!")
    }
})

參考:https://blog.csdn.net/swimmin...

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/19435.html

相關文章

  • Mongoose增刪查改

    摘要:通過構造而成,除了具有定義的數據庫骨架以外,還可以具體的操作數據庫。通過創建的實體,它也可以操作數據庫。但比更具操作性。 原文鏈接:Mongoose 前言 學數據庫肯定需要知道怎么連接后臺Mongoose 是用來方便連接 MongoDB 與 node 的一個工具包是時候學習一波 nodejs連接MongoDB 連接數據庫前需要先打開數據庫 MongoDB yarn add mongoo...

    gityuan 評論0 收藏0
  • 使用express+mongoosemongodb實現增刪改查操作

    摘要:項目地址寫在開頭本文主要分享我如何使用對實現增刪改查操作,感謝社區所有精品文章的幫助,以及的開源項目對我的啟發。我們這個項目是建立一個班級學生管理系統,能夠對學生的姓名及學號進行增刪改查的操作。 項目地址:https://github.com/jrainlau/mongoose_cru... 寫在開頭 本文主要分享我如何使用express+mongoose對mongodb實現增刪改查...

    Markxu 評論0 收藏0
  • mongoose(1)

    最近學習用nodejs做博客系統,用了express框架。數據庫采用mongodb,具體用mongoose實現,下面是mongoose的初步了解1、首先要安裝mongoose npm install mongoose2、 //db.js const mongoose=require(mongoose);//在文件中引用 const Schema=mongoose.Schema;//schema定義...

    shmily 評論0 收藏0
  • mongoose(1)

    最近學習用nodejs做博客系統,用了express框架。數據庫采用mongodb,具體用mongoose實現,下面是mongoose的初步了解1、首先要安裝mongoose npm install mongoose2、 //db.js const mongoose=require(mongoose);//在文件中引用 const Schema=mongoose.Schema;//schema定義...

    pubdreamcc 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<