如何在 Javascript 中使用 Mongoose 建立 ID?


在本教程中,我們將學習如何在 JavaScript 中使用 Mongoose 建立 ID。使用者可以在 NodeJS 中使用 Mongoose NPM 包來將 MongoDB 與 NodeJS 一起使用,或將 MongoDB 連線到應用程式。

在將資料儲存到 MongoDB 資料庫時,我們必須為每個資料集合新增一個唯一的 ID。但是,如果我們不新增 ID,它會自動生成並新增到資料中。

語法

使用者可以按照以下語法在 JavaScript 中使用 Mongoose 建立 ID。

var newId = new mongoose.mongo.ObjectId();

在上面的語法中,我們從 Mongoose 訪問 'mongo' 並呼叫 'ObjectId()' 方法來生成一個新的 ID。

示例 1

在下面的示例中,我們已將 MongoDB 與 NodeJS 連線。但是,使用者需要更改其帳戶詳細資訊。之後,我們建立了 Mongoose 模式。使用該模式,我們建立了 Mongoose 模型。

data 物件包含要儲存到 MongoDB 資料庫中的資料。之後,我們使用 save() 方法將資料集合儲存到 MongoDB。如果成功儲存資料,它將列印結果。在輸出中,使用者可以觀察資料的 ID。

我們沒有為資料分配任何 ID,因此它已自動生成了 ID。

const mongoose = require("mongoose");
// Database connection
mongoose
.connect(
   "mongodb+srv://shubhamvora05:Stockdata@stockdata.lrlgm.mongodb.net/StockList?retryWrites=true&w=majority",
   { useNewUrlParser: true, useUnifiedTopology: true }
)
.then(() => {
   console.log("Connected to database");
})
.catch((err) => {
   console.log("Error connecting to DB", err.message);
});

const dataSchema = new mongoose.Schema({
   name: String,
   type: String,
});

const dataModel = mongoose.model("dataModel", dataSchema);

const data = {
   name: "Delhi",
   type: "city",
};

var dataDetails = new dataModel(data);
dataDetails
.save()
.then((res) => {
   console.log(res);
})
.catch((err) => {
   console.log(err);
});

輸出

執行後,它將產生以下輸出:

$ node index.js
Connected to database
{
   name: 'Delhi',
   type: 'city',
   _id: new ObjectId("642b937407844923e4fddee7"),
   __v: 0
}

示例 2

在下面的示例中,我們使用 'mongo.ObjectId()' 方法為資料生成 ID。之後,我們在控制檯中列印了生成的 ID。接下來,我們透過分配新生成的 ID 來儲存資料。

在輸出中,使用者可以觀察到資料的 ID 與我們生成的 ID 相同。

const mongoose = require("mongoose");
// Database connection
mongoose
.connect(
   "mongodb+srv://shubhamvora05:Stockdata@stockdata.lrlgm.mongodb.net/StockList?retryWrites=true&w=majority",
   { useNewUrlParser: true,    useUnifiedTopology: true }
)
.then(() => {
   console.log("Connected to database");
})
.catch((err) => {
   console.log("Error connecting to DB", err.message);
});

const dataSchema = new mongoose.Schema({
   name: String,
   type: String,
});

const dataModel = mongoose.model("dataModel", dataSchema);
var newId = new mongoose.mongo.ObjectId();
console.log(newId);

const data = {
   _id: newId,
   name: "Gujarat",
   type: "state",
};

var dataDetails = new dataModel(data);
dataDetails
.save()
.then((res) => {
   console.log(res);
})
.catch((err) => {
   console.log(err);
});

輸出

執行後,它將產生以下輸出:

$ node index.js
new ObjectId("642b9796987428b8b945f477") Connected to database
{
   name: 'Gujarat',
   type: 'state',
   _id: new ObjectId("642b9796987428b8b945f477"),
   __v: 0
}

示例 3

在下面的示例中,我們將 12 位元組的字串作為 ObjectId() 方法的引數傳遞。它根據作為引數傳遞的值生成新的 ID。但是,使用者也可以將 24 個十六進位制字元作為引數傳遞。

在輸出中,使用者可以觀察到 24 個十六進位制字元的 ID。

const mongoose = require("mongoose");
// Database connection
mongoose
.connect(
   "mongodb+srv://shubhamvora05:Stockdata@stockdata.lrlgm.mongodb.net/StockList?retryWrites=true&w=majority",
   { useNewUrlParser: true, useUnifiedTopology: true }
)
.then(() => {
   console.log("Connected to database");
})
.catch((err) => {
   console.log("Error connecting to DB", err.message);
});
const dataSchema = new mongoose.Schema({
   name: String,
   type: String,
});
const dataModel = mongoose.model("dataModel", dataSchema);
var newId = new mongoose.mongo.ObjectId('234556567123');
const data = {
   _id: newId,
   name: "Lokesh",
   type: "name",
};
var dataDetails = new dataModel(data);
dataDetails
.save()
.then((res) => {
   console.log(res);
})
.catch((err) => {
   console.log(err);
});

輸出

執行後,它將產生以下輸出:

$ node index.js
Connected to database
{
   name: 'Lokesh',
   type: 'name',
   _id: new ObjectId("323334353536353637313233"),
   __v: 0
}

結論

使用者學習瞭如何在 MongoDb 中生成隨機 ID。此外,使用者還學習瞭如何透過將 12 位元組的字串或 24 個十六進位制字元作為 ObjectId() 方法的引數來為 MongoDB 資料生成特定 ID。

更新於: 2023年4月19日

4K+ 次檢視

開啟您的 職業生涯

透過完成課程獲得認證

開始學習
廣告