如何在 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。
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP