我想ObjectId
用 Mongoose 生成一个 MongoDB。有没有办法ObjectId
从 Mongoose 访问构造函数?
这个问题是关于从头开始生成一个新的。
ObjectId
生成的 ID 是一个全新的通用唯一 ID。另一个问题询问关于
ObjectId
从现有字符串表示创建一个。在这种情况下,您已经有一个 ID 的字符串表示形式——它可能是也可能不是普遍唯一的——并且您正在将其解析为ObjectId
.
您可以ObjectId
在require('mongoose').Types
. 这是一个例子:
var mongoose = require('mongoose');
var id = mongoose.Types.ObjectId();
id
是一个新生成的ObjectId
.
注意:正如Joshua Sherman指出的那样,使用 Mongoose 6,您必须在呼叫前加上new
:
var id = new mongoose.Types.ObjectId();
您可以在Mongoose#Types 文档中阅读有关该Types
对象的更多信息。
您可以使用 mongoose 像这样创建一个新的 MongoDB ObjectId
:
var mongoose = require('mongoose');
var newId = new mongoose.mongo.ObjectId('56cb91bdc3464f14678934ca');
// or leave the id string blank to generate an id with a new hex identifier
var newId2 = new mongoose.mongo.ObjectId();
我需要在客户端生成 mongodb id。
在深入研究 mongodb 源代码后,我发现他们使用 npm bson
lib 生成 ObjectID。
如果您只需要生成一个 ObjectID 而无需安装整个 mongodb / mongoose 包,您可以导入较轻的bson
库:
const bson = require('bson');
new bson.ObjectId(); // 5cabe64dcf0d4447fa60f5e2
注意:还有一个 npm 项目,名字叫bson-objectid
更轻
使用 ES6 语法
import mongoose from "mongoose";
// Generate a new new ObjectId
const newId2 = new mongoose.Types.ObjectId();
// Convert string to ObjectId
const newId = new mongoose.Types.ObjectId('56cb91bdc3464f14678934ca');