如何在 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