溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

怎么使用Node連接mongodb

發(fā)布時(shí)間:2023-04-13 10:54:27 來(lái)源:億速云 閱讀:87 作者:iii 欄目:web開發(fā)

本篇內(nèi)容主要講解“怎么使用Node連接mongodb”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“怎么使用Node連接mongodb”吧!

Mongoose 是一個(gè) Node.js 包,提供了一個(gè)使用 mongo 數(shù)據(jù)庫(kù)的接口。在應(yīng)用程序中使用它是非常輕量級(jí)的 npm 包。 Mongoose 擁有所有方法集,可以連接和訪問(wèn)存儲(chǔ)在 Mongo 數(shù)據(jù)庫(kù)中的數(shù)據(jù)。

react-giant:一個(gè)react+next.js+mongodb的學(xué)習(xí)項(xiàng)目。

安裝Mongoose庫(kù)

這是 Node.js 項(xiàng)目開發(fā)必須的步驟之一,使用 npm 命令進(jìn)行安裝,在終端輸入以下命令即可安裝:

npm install mongoose --save

連接 MongoDB

通常在使用數(shù)據(jù)庫(kù)的時(shí)候,都需要先建立連接,通過(guò)以下方式建立連接:

const mongoose = require("mongoose");

const connectDb = async () => {
    await mongoose.connect("mongodb://localhost:27017/admin");
};

connectDb();

在上面的代碼中,mongoose.connect() 函數(shù)用于建立到MongoDB的連接。第一個(gè)參數(shù)指定了MongoDB的連接URL,格式為 mongodb://<host>:<port>/<database-name>?<options>,其中<host> 指定MongoDB所在的主機(jī)名或IP地址,<port>指定MongoDB的端口號(hào),<database-name> 指定要連接的數(shù)據(jù)庫(kù)的名稱,<options>是一些配置項(xiàng),以參數(shù)的方式傳遞,如 ?useNewUrlParser=true&useUnifiedTopology=true。對(duì)于需要用戶名和密碼連接的數(shù)據(jù)庫(kù),則<host>參數(shù)方式為 username:password@127.0.0.1:27017。

需要注意的是,mongoose 不同版本連接方式上有點(diǎn)區(qū)別,上述代碼是在版本 7.0.2 可以正常使用。

定義模型和模式

在使用 Mongoose 時(shí),通常需要先定義一個(gè)模型和對(duì)應(yīng)的模式。模型是指 MongoDB 中的一個(gè)集合,而模式則指定了集合中每個(gè)文檔的結(jié)構(gòu)和字段。以下是一個(gè)簡(jiǎn)單的模式定義示例:

const mongoose = require("mongoose");

const userSchema = new mongoose.Schema({
    username: {
        type: String,
        required: true,
    },
    email: {
        type: String,
        required: true,
        unique: true,
        maxlength: [255, "Email length must be at most 255"],
    },
    ip: {
        type: String,
        required: true,
    },
});

const User = mongoose.model("User", userSchema);

CRUD操作

在定義了模型和模式之后,就可以使用模型進(jìn)行 CRUD(創(chuàng)建、讀取、更新、刪除)操作。以下是一些常用的示例代碼:

const mongoose = require("mongoose");

// 創(chuàng)建記錄
async function createUsers() {
    const result = await User.create({
        username: "Quintion",
        email: "quintiontang@gmail.com",
        ip: "127.0.0.1",
    });
    return result;
}

// 查詢文檔列表
async function getUsers() {
    const users = await User.find();
    return users;
}

// 查詢單個(gè)
async function getUser() {
    const user = await User.find({
        username: "Quintion",
    });
    return user;
}
// 刪除記錄
async function deleteUser() {
    return await User.remove({
        username: "Quintion",
    });
}

到此,相信大家對(duì)“怎么使用Node連接mongodb”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI