首页 > web前端 > js教程 > 如何在 Javascript 中使用 mongoose 创建 id?

如何在 Javascript 中使用 mongoose 创建 id?

WBOY
发布: 2023-08-24 09:25:02
转载
1543 人浏览过

如何在 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 连接起来。但是,用户需要更改其帐户详细信息。之后,我们创建了猫鼬模式。使用该架构,我们创建了猫鼬模型。

数据对象包含要保存到 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。

以上是如何在 Javascript 中使用 mongoose 创建 id?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:tutorialspoint.com
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板