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

Node.js開發(fā)-MongoDB

這篇具有很好參考價值的文章主要介紹了Node.js開發(fā)-MongoDB。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

1) Mongoose

介紹

Mongoose 是一個對象文檔模型庫,官網(wǎng) http://www.mongoosejs.net/

作用

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

使用流程

// 導(dǎo)入mongoose
const mongoose = require("mongoose");

// 連接 mongodb
mongoose.connect('mongodb://127.0.0.1:27017/bilibili');

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

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

2) 插入文檔

// 導(dǎo)入mongoose
const mongoose = require("mongoose");

mongoose.set('strictQuery', false);

// 連接 mongodb
mongoose.connect('mongodb://127.0.0.1:27017/bilibili');

// 設(shè)置回調(diào)
mongoose.connection.once("open", () => {
    // 創(chuàng)建文檔的結(jié)構(gòu)對象
    let BookSchema = new mongoose.Schema({
        name: String,
        author: String,
        price: Number
    });

    // 創(chuàng)建模型對象
    let BookModel = mongoose.model('books', BookSchema);

    // 新增
    BookModel.create({
        name: "西游記",
        author: "吳承恩",
        price: 19.9
    }, (err,data)=>{
        if (err) {
            console.log(err);
            return;
        }
        console.log(data);
        
        mongoose.disconnect();
    });
});
mongoose.connection.on("error", () => {
    // 設(shè)置連接錯誤的回調(diào)
    console.log("連接失敗");
});
mongoose.connection.on("close", () => {
    // 設(shè)置連接關(guān)閉的回調(diào)
    console.log("連接關(guān)閉");
});

3) 字段類型

文檔結(jié)構(gòu)可選的常用字段類型列表

類型 描述
String 字符串
Number 數(shù)字
Boolean 布爾值
Array 數(shù)組,也可以使用[]來標識
Date 日期
Buffer Buffer 對象
Mixed 任意類型,需要使用 mongoose.Schema.Types.Mixed 指定
ObjectId 對象 ID,需要使用 mongoose.Schema.Types.ObjectId 指定
Decimal128 高精度數(shù)字,需要使用 mongoose.Schema.Types.Decimal128 指定

4) 字段值驗證

Mongoose 有一些內(nèi)建驗證器,可以對字段值進行驗證

必填項

title: {
    type: String,
    required: true // 設(shè)置必填項
},

默認值

author: {
    type: String,
    default: '匿名' //默認值
},

枚舉值

gender: {
    type: String,
    enum: ['男','女'] //設(shè)置的值必須是數(shù)組中的
},

唯一值 (主鍵)

username: {
    type: String,
    unique: true
},

unique 需要 重建集合 才能有效果

5) CRUD

數(shù)據(jù)庫的基本操作包括四個,增加(create),刪除(delete),修改(update),查(read)

1) 增加

插入一條

SongModel.create({
    title:'給我一首歌的時間',
    author: 'Jay'
}, function(err, data){
    //錯誤
    console.log(err);
    //插入后的數(shù)據(jù)對象
    console.log(data);
});

批量插入

PhoneModel.insertMany([
    {
        brand:'華為',
        color:'灰色',
        price:2399,
        tags:['電量大','屏幕大','信號好']
    },
    {
        brand:'小米',
        color:'白色',
        price:2099,
        tags:['電量大','屏幕大','信號好']
    }],(err,data)=>{
        if(err) throw err;
        console.log('寫入成功');
        mongoose.connection.close();
})

2) 刪除

刪除一條數(shù)據(jù)

BookModel.deleteOne({_id: "65c60c85df92ad81ab74d4a8"}, (err, data) => {
    // 判斷
    if (err) {
        console.log("刪除失敗~~");
        return;
    }
    console.log(data);
});

批量刪除

BookModel.deleteMany({is_hot: false}, (err, data) => {
    if (err) {
        console.log("刪除失敗~~");
        return;
    }
    console.log(data);
});

3) 更新

更新一條

BookModel.updateOne({name: "紅樓夢"}, {price: 9.9}, (err, data) => {
    if (err) {
        console.log(err);
        return;
    }
    console.log(data);
});

批量更新

BookModel.updateMany({author: "余華"}, {is_hot: false}, (err, data) => {
    if (err) {
        console.log(err);
        return;
    }
    console.log(data);
});

4) 查詢

查詢單條數(shù)據(jù)

BookModel.findOne({name: "狂飆"}, (err, data) => {
    if (err) {
        console.log(err);
    }
    console.log(data);
});

根據(jù)id查詢

BookModel.findById({_id: "65c60c85df92ad81ab74d4b9"}, (err, data) => {
    if (err) {
        console.log(err);
    }
    console.log(data);
});

批量查詢 (條件可以不添加則自動獲取所有)

BookModel.find({author: "余華"}, (err, data) => {
    if (err) {
        console.log(err);
    }
    console.log(data);
});

6) 條件控制

1) 運算符

在 mongodb 不能 > < >= <= !== 等運算符,需要使用替代符號

  • > 使用 $gt

  • < 使用 $lt

  • >= 使用 $gte

  • <= 使用 $lte

  • !== 使用 $ne

db.students.find({id: {$gt: 3}}); id號比3大的所有的記錄

2) 邏輯運算

$or 邏輯或的情況

db.students.find({$or: [{age:18},{age:24}]});

$and 邏輯與的情況

db.students.find({$and: [{age: {$lt:20}}, {age: {$gt: 15}}]});

3) 正則匹配

條件中可以直接使用 JS 的正則語法,通過正則可以進行模糊查詢文章來源地址http://www.zghlxwxcb.cn/news/detail-830541.html

db.students.find({name://});
db.students.find({name: new RegExp('劉')});

7) 個性化讀取

1) 字段篩選

//0:不要的字段
//1:要的字段
SongModel.find().select({_id:0,title:1}).exec(function(err,data){
    if(err) throw err;
    console.log(data);
    mongoose.connection.close();
});

2) 數(shù)據(jù)排序

//sort 排序
//1:升序
//-1:倒序
SongModel.find().sort({hot:1}).exec(function(err,data){
    if(err) throw err;
    console.log(data);
    mongoose.connection.close();
});

3) 數(shù)據(jù)截取

//skip 跳過 limit 限定
SongModel.find().skip(10).limit(10).exec(function(err,data){
    if(err) throw err;
    console.log(data);
    mongoose.connection.close();
});

到了這里,關(guān)于Node.js開發(fā)-MongoDB的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • Node.Js篇 NodeJs使用MongoDB

    Node.Js篇 NodeJs使用MongoDB

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

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

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

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

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

    2024年04月14日
    瀏覽(42)
  • node中的數(shù)據(jù)持久化之mongoDB

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

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

    2024年02月13日
    瀏覽(16)
  • 〖Python 數(shù)據(jù)庫開發(fā)實戰(zhàn) - MongoDB篇⑧〗- MongoDB的數(shù)據(jù)結(jié)構(gòu)

    訂閱 Python全棧白寶書-零基礎(chǔ)入門篇 可報銷! 白嫖入口-請點擊我。 推薦他人訂閱,可獲取扣除平臺費用后的35%收益,文末名片加V! 說明:該文屬于 Python全棧白寶書專欄, 免費階段訂閱數(shù)量4300+ , 購買任意白寶書體系化專欄可加入 TFS-CLUB 私域社區(qū)。 福利:加入社區(qū)的小伙

    2023年04月09日
    瀏覽(105)
  • node教程(四)Mongodb+mongoose

    node教程(四)Mongodb+mongoose

    1.1Mongodb是什么? Mongodb是一個基于分布式文件存儲的數(shù)據(jù)庫 1.2數(shù)據(jù)庫是什么? 數(shù)據(jù)庫是按照數(shù)據(jù)結(jié)構(gòu)來組織、存儲和管理數(shù)據(jù)的應(yīng)用程序。 1.3數(shù)據(jù)庫的作用 主要作用就是管理數(shù)據(jù),對數(shù)據(jù)進行增刪改查 1.4數(shù)據(jù)庫管理數(shù)據(jù)的特點 相比于純文件,數(shù)據(jù)庫管理數(shù)據(jù)具有如下特點

    2024年02月05日
    瀏覽(14)
  • centos配置nginx+node前后臺+mongodb

    centos 環(huán)境下安裝

    2024年02月11日
    瀏覽(23)
  • 〖Python 數(shù)據(jù)庫開發(fā)實戰(zhàn) - MongoDB篇?〗- MongoDB創(chuàng)建索引時的一些實用的重要選項參數(shù)

    訂閱 Python全棧白寶書-零基礎(chǔ)入門篇 可報銷! 白嫖入口-請點擊我。 推薦他人訂閱,可獲取扣除平臺費用后的35%收益,文末名片加V! 說明:該文屬于 Python全棧白寶書專欄, 免費階段訂閱數(shù)量4300+ , 購買任意白寶書體系化專欄可加入 TFS-CLUB 私域社區(qū)。 福利:加入社區(qū)的小伙

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

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

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

    2024年01月25日
    瀏覽(25)
  • node.js之連接數(shù)據(jù)庫

    node.js之連接數(shù)據(jù)庫

    我們?nèi)绾卧趎odejs中連接并操作數(shù)據(jù)庫呢? 讓我為大家解答一下吧! 1.安裝操作MySQL數(shù)據(jù)庫的第三方塊 (mysql) mysql 模塊是托管于 npm 上的第三方塊。它提供了在 Nodejs 項目中連接和操作 MySQL 數(shù)據(jù)庫的能力想要在項目中使用它,需要先運行如下命令,將mysql安裝為項目的依賴包 2

    2024年01月19日
    瀏覽(36)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包