Javascript 如何使用mongoose创建id

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模型。

数据对象包含要保存到MongoDB数据库中的数据。之后,我们使用save()方法将一组数据保存到MongoDB中。如果成功保存数据,它将打印结果。在输出中,用户可以观察到数据的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。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程