国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

node教程(四)Mongodb+mongoose

這篇具有很好參考價(jià)值的文章主要介紹了node教程(四)Mongodb+mongoose。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

一、mongodb

1.簡(jiǎn)介

1.1Mongodb是什么?

Mongodb是一個(gè)基于分布式文件存儲(chǔ)的數(shù)據(jù)庫(kù)

1.2數(shù)據(jù)庫(kù)是什么?

數(shù)據(jù)庫(kù)是按照數(shù)據(jù)結(jié)構(gòu)來(lái)組織、存儲(chǔ)和管理數(shù)據(jù)的應(yīng)用程序。

1.3數(shù)據(jù)庫(kù)的作用

主要作用就是管理數(shù)據(jù),對(duì)數(shù)據(jù)進(jìn)行增刪改查

1.4數(shù)據(jù)庫(kù)管理數(shù)據(jù)的特點(diǎn)

相比于純文件,數(shù)據(jù)庫(kù)管理數(shù)據(jù)具有如下特點(diǎn):
1.速度更快
2.拓展性更強(qiáng)
3.安全性更強(qiáng)
2.核心概念

2.核心概念

Mongodb中有三個(gè)重要概念

  • 數(shù)據(jù)庫(kù)是一個(gè)數(shù)據(jù)倉(cāng)庫(kù),數(shù)據(jù)庫(kù)服務(wù)下可以創(chuàng)建很多數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)中可以存放很多集合
  • 集合:集合類(lèi)似于JS中的數(shù)組,在集合中可以存放很多文檔
  • 文檔:文檔是數(shù)據(jù)庫(kù)中的最小單位,類(lèi)似于JS中的對(duì)象

node教程(四)Mongodb+mongoose,# Node,mongodb,數(shù)據(jù)庫(kù)

3.下載安裝與啟動(dòng)

https://www.mongodb.com/try/download/community
千萬(wàn)不要選中服務(wù)端窗口的內(nèi)容,選中會(huì)停止服務(wù),可以敲回車(chē)取消選中

4.命令行交互

4.1數(shù)據(jù)庫(kù)命令

1.顯示所有的數(shù)據(jù)庫(kù)

show dbs

2.切換到指定的數(shù)據(jù)庫(kù),如果數(shù)據(jù)庫(kù)不存在則會(huì)自動(dòng)創(chuàng)建數(shù)據(jù)庫(kù)

use 數(shù)據(jù)庫(kù)名

3.顯示當(dāng)前所在數(shù)據(jù)庫(kù)

db

4.刪除當(dāng)前數(shù)據(jù)庫(kù)

use 庫(kù)名
db.dropDatabase()

4.2集合命令
1.創(chuàng)建集合

db.createCollection('集合名稱(chēng)')

2.顯示當(dāng)前數(shù)據(jù)庫(kù)中的所有集合

show collections

3.刪除某個(gè)集合

db.集合名.drop()

4.重命名集合

db.集合名.renameCollection('new name')

4.3文檔命令

1.插入文檔

db.集合名.insert('文檔對(duì)象')

2.查詢(xún)文檔

db.集合名.find(查詢(xún)條件)

_id是mongodb自動(dòng)生成的唯一編號(hào),用來(lái)唯一標(biāo)識(shí)文檔
3.更新文檔

db.集合名.update(查詢(xún)條件,新的文檔)
db.集合名.update({name:'張三'},{$set:{age:19}})

4.刪除文檔

db.集合名.remove(查詢(xún)條件)

二、Mongoose

1.介紹

是一個(gè)對(duì)象文檔模型庫(kù)

2.作用

方便使用代碼操作mongodb數(shù)據(jù)庫(kù)

3.使用流程

// 安裝mongoose
// 導(dǎo)入mongoose
const mongoose = require('mongoose');

// 連接mongodb服務(wù)                      數(shù)據(jù)庫(kù)的名稱(chēng)
mongoose.connect('mongodb://127.0.0.1:27017/abc')

/* 設(shè)置回調(diào) */
mongoose.connection.on('open',() => {
    console.log('連接成功');
}); // 設(shè)置連接成功的回調(diào)
mongoose.connection.on('error',() => {
    console.log('連接失敗');
}); //連接失敗的回調(diào)
mongoose.connection.on('close',() => {
    console.log('連接關(guān)閉');
}); //設(shè)置連接關(guān)閉的回調(diào)

// 關(guān)閉mongodb的連接
setTimeout(() => {
    mongoose.disconnect();
},2000)

4.插入文檔

出現(xiàn)以下問(wèn)題

 throw new MongooseError('Model.create() no longer accepts a callback');

是由于mongoose版本太高,可以手動(dòng)降級(jí)

npm i mongoose@6.8.0
// 安裝mongoose
// 導(dǎo)入mongoose
const mongoose = require('mongoose');

// 連接mongodb服務(wù)                      數(shù)據(jù)庫(kù)的名稱(chēng)
mongoose.connect('mongodb://127.0.0.1:27017/abc')

/* 設(shè)置回調(diào) */
mongoose.connection.once('open',() => {
    // console.log('連接成功');
    // 5.創(chuàng)建文檔的結(jié)構(gòu)對(duì)象
    // 設(shè)置集合中文檔的屬性以及屬性值的類(lèi)型
    let BookSchema = new mongoose.Schema({
        name:String,
        author: String,
        price: Number
    });

    // 創(chuàng)建模型對(duì)象  對(duì)文檔操作的封裝對(duì)象
    let BookModel = mongoose.model('books',BookSchema);

    // 新增
    BookModel.create({
        name:'xiyouji',
        author:'吳承恩',
        price:19.9
    },(err,data) => {
        if(err){
            console.log(err);
            return;
        }
        // 如果沒(méi)有出錯(cuò),則輸出插入后的文檔對(duì)象
        console.log(data);
        // 關(guān)閉數(shù)據(jù)庫(kù)連接(項(xiàng)目運(yùn)行過(guò)程中不會(huì)添加此代碼)
        mongoose.disconnect();
    });

}); // 設(shè)置連接成功的回調(diào)

mongoose.connection.on('error',() => {
    console.log('連接失敗');
}); //連接失敗的回調(diào)
mongoose.connection.on('close',() => {
    console.log('連接關(guān)閉');
}); //設(shè)置連接關(guān)閉的回調(diào)


5.mongoose字段類(lèi)型

文檔結(jié)構(gòu)可選的常用字段類(lèi)型列表
node教程(四)Mongodb+mongoose,# Node,mongodb,數(shù)據(jù)庫(kù)

// 安裝mongoose
// 導(dǎo)入mongoose
const { Mixed } = require('mongoose');
const mongoose = require('mongoose');

// 連接mongodb服務(wù)                      數(shù)據(jù)庫(kù)的名稱(chēng)
mongoose.connect('mongodb://127.0.0.1:27017/abc')

/* 設(shè)置回調(diào) */
mongoose.connection.once('open',() => {
    // console.log('連接成功');
    // 5.創(chuàng)建文檔的結(jié)構(gòu)對(duì)象
    // 設(shè)置集合中文檔的屬性以及屬性值的類(lèi)型
    let BookSchema = new mongoose.Schema({
        name:String,
        author: String,
        price: Number,
        is_hot:Boolean,
        tags:Array,
        pub_time:Date,
        test:mongoose.Schema.Types.Mixed 
    });

    // 創(chuàng)建模型對(duì)象  對(duì)文檔操作的封裝對(duì)象
    let BookModel = mongoose.model('books',BookSchema);

    // 新增
    BookModel.create({
        name:'xiyouji',
        author:'吳承恩',
        price:19.9,
        is_hot:true,
        tags:['鬼怪','勵(lì)志'],
        pub_time:new Date(),
        test:'abc'
    },(err,data) => {
        if(err){
            console.log(err);
            return;
        }
        // 如果沒(méi)有出錯(cuò),則輸出插入后的文檔對(duì)象
        console.log(data);
        // 關(guān)閉數(shù)據(jù)庫(kù)連接(項(xiàng)目運(yùn)行過(guò)程中不會(huì)添加此代碼)
        mongoose.disconnect();
    });

}); // 設(shè)置連接成功的回調(diào)

mongoose.connection.on('error',() => {
    console.log('連接失敗');
}); //連接失敗的回調(diào)
mongoose.connection.on('close',() => {
    console.log('連接關(guān)閉');
}); //設(shè)置連接關(guān)閉的回調(diào)


三、圖形化管理工具

我們可以使用圖形化的管理工具來(lái)對(duì)Mongodb進(jìn)行交互,文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-745813.html

  • Robo 3T 免費(fèi)
  • Navicat

到了這里,關(guān)于node教程(四)Mongodb+mongoose的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Node.js開(kāi)發(fā)-MongoDB

    介紹 Mongoose 是一個(gè)對(duì)象文檔模型庫(kù),官網(wǎng) http://www.mongoosejs.net/ 作用 方便使用代碼操作 mongodb 數(shù)據(jù)庫(kù) 使用流程 文檔結(jié)構(gòu)可選的常用字段類(lèi)型列表 類(lèi)型 描述 String 字符串 Number 數(shù)字 Boolean 布爾值 Array 數(shù)組,也可以使用 [] 來(lái)標(biāo)識(shí) Date 日期 Buffer Buffer 對(duì)象 Mixed 任意類(lèi)型,需要使

    2024年02月20日
    瀏覽(18)
  • Node.js詳解(四):連接MongoDB

    Node.js詳解(四):連接MongoDB

    MongoDB 對(duì)許多平臺(tái)都提供驅(qū)動(dòng)可以訪(fǎng)問(wèn)數(shù)據(jù)庫(kù),如C#、Java、Node.js等。下面一步一步帶著大家在Nodejs中連接MongoDB 命令如下: 連接MongoDB數(shù)據(jù)庫(kù),實(shí)現(xiàn)curd、圖片上傳(使用element-ui框架)功能的完整代碼如下: ejs 頁(yè)面:

    2024年02月16日
    瀏覽(24)
  • Node.Js篇 NodeJs使用MongoDB

    Node.Js篇 NodeJs使用MongoDB

    目錄 介紹 概念解析 ??????????????????安裝 啟動(dòng)時(shí)注意事項(xiàng) NodeJs操作Mongo 介紹 MongoDB 是一個(gè)基于分布式文件存儲(chǔ)的數(shù)據(jù)庫(kù)。由 C++ 語(yǔ)言編寫(xiě)。旨在為 WEB 應(yīng)用提供可擴(kuò)展的高性能數(shù)據(jù)存儲(chǔ)解決方案。? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

    2024年02月09日
    瀏覽(30)
  • 在 Node.js 中使用 MongoDB 事務(wù)

    MongoDB事務(wù) 事務(wù)介紹 在 MongoDB 中,對(duì)單個(gè)文檔的操作是原子的。由于您可以使用嵌入的文檔和數(shù)組來(lái)捕獲單個(gè)文檔結(jié)構(gòu)中的數(shù)據(jù)之間的關(guān)系,而不是跨多個(gè)文檔和集合進(jìn)行規(guī)范化,因此這種單一文檔的原子性消除了對(duì)多文檔的需求許多實(shí)際用例的事務(wù)。 對(duì)于需要對(duì)多個(gè)文檔(

    2024年02月10日
    瀏覽(17)
  • node中的數(shù)據(jù)持久化之mongoDB

    node中的數(shù)據(jù)持久化之mongoDB

    MongoDB 是一種 開(kāi)源的非關(guān)系型數(shù)據(jù)庫(kù) ,正如它的名字所表示的, MongoDB 支持的數(shù)據(jù)結(jié)構(gòu)非常松散,是一種以 bson 格式(一種 json 的存儲(chǔ)形式)的 文檔存儲(chǔ)方式 為主,支持的數(shù)據(jù)結(jié)構(gòu)類(lèi)型更加豐富的 NoSQL 數(shù)據(jù)庫(kù)。它是一種 介于關(guān)系數(shù)據(jù)庫(kù)和非關(guān)系數(shù)據(jù)庫(kù)之間的產(chǎn) 品,是非關(guān)

    2024年02月13日
    瀏覽(16)
  • centos配置nginx+node前后臺(tái)+mongodb

    centos 環(huán)境下安裝

    2024年02月11日
    瀏覽(24)
  • 【node進(jìn)階】淺析Koa框架---ejs模板|文件上傳|操作mongoDB

    【node進(jìn)階】淺析Koa框架---ejs模板|文件上傳|操作mongoDB

    ? 作者簡(jiǎn)介:一名普通本科大三的學(xué)生,致力于提高前端開(kāi)發(fā)能力 ? 個(gè)人主頁(yè):前端小白在前進(jìn)的主頁(yè) ?? 系列專(zhuān)欄 : node.js學(xué)習(xí)專(zhuān)欄 ?? 個(gè)人社區(qū) : 個(gè)人交流社區(qū) ?? 學(xué)習(xí)格言: ?? 打不倒你的會(huì)使你更強(qiáng)!?? ?? 刷題網(wǎng)站:這段時(shí)間有許多的小伙伴在問(wèn)有沒(méi)有什么

    2024年01月25日
    瀏覽(25)
  • node基于express+mongodb項(xiàng)目的整體結(jié)構(gòu)搭建和邏輯抽離

    node基于express+mongodb項(xiàng)目的整體結(jié)構(gòu)搭建和邏輯抽離

    這是我用express實(shí)現(xiàn)的一個(gè)縮減版的注冊(cè)功能,如下: app.js 目錄結(jié)構(gòu)如下: 可以看到的是所有的邏輯,創(chuàng)建服務(wù)器、鏈接數(shù)據(jù)庫(kù)、創(chuàng)建集合、注冊(cè)都在app.js文件中,這只是一個(gè)簡(jiǎn)單的注冊(cè)功能,可能看上去還不是很亂,但是當(dāng)我們后面項(xiàng)目越來(lái)越大,所做的功能越來(lái)越多,顯

    2024年02月16日
    瀏覽(14)
  • 在nodejs中使用Mongoose和MongoDB實(shí)現(xiàn)curd操作

    在 Node.js 中,數(shù)據(jù)庫(kù)被用來(lái)存儲(chǔ)和檢索 Web 應(yīng)用程序的數(shù)據(jù)。它們是構(gòu)建動(dòng)態(tài)和可伸縮應(yīng)用程序的重要組成部分。 Node.js 提供了各種模塊和包,可以與數(shù)據(jù)庫(kù)一起工作,如 MySQL 、 PostgreSQL 、 MongoDB 等。它們?cè)试S開(kāi)發(fā)人員使用各種操作來(lái)存儲(chǔ)、查詢(xún)和操作數(shù)據(jù),例如創(chuàng)建、讀取、

    2024年02月06日
    瀏覽(18)
  • 前端Vue Node.js + Express + MongoDB 構(gòu)建的后端服務(wù)API接口

    構(gòu)建一個(gè)使用 Vue.js 作為前端, Node.js + Express + MongoDB 作為后端服務(wù)的全棧應(yīng)用涉及到多個(gè)步驟。這里簡(jiǎn)要概述整個(gè)過(guò)程,并提供一些基本的代碼示例來(lái)幫助你開(kāi)始。 安裝 MongoDB: 根據(jù)你的操作系統(tǒng)從 MongoDB 官網(wǎng) 下載并安裝 MongoDB。 啟動(dòng) MongoDB 服務(wù): 安裝完成后,根據(jù) MongoDB 的

    2024年04月14日
    瀏覽(42)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包