mongodb 如何使用mongoose生成ObjectId?

u0sqgete  于 2023-03-22  发布在  Go
关注(0)|答案(5)|浏览(194)

我想用Mongoose生成一个MongoDB ObjectId。有办法从Mongoose访问ObjectId构造函数吗?

  • 本题是关于重新生成一个新的ObjectId,生成的ID是一个全新的全局唯一ID。
  • 另一个问题询问如何从现有的字符串表示创建ObjectId。在本例中,您已经有了ID的字符串表示-它可能是也可能不是通用唯一的-并且您正在将其解析为ObjectId
cnjp1d6j

cnjp1d6j1#

你可以在require('mongoose').Types上找到ObjectId构造函数。下面是一个例子:

var mongoose = require('mongoose');
var id = mongoose.Types.ObjectId();

id是新生成的ObjectId

注意:正如约书亚谢尔曼所指出的,对于Mongoose 6,您必须使用new作为调用的前缀:

var id = new mongoose.Types.ObjectId();

您可以在Mongoose#Types文档中阅读有关Types对象的更多信息。

e4yzc0pl

e4yzc0pl2#

您可以使用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();
qzlgjiam

qzlgjiam3#

我需要在客户端生成mongodb id。
在深入研究mongodb源代码后,我发现他们使用npm bson lib生成ObjectID。
如果你只需要生成一个ObjectID而不需要安装整个mongodb / mongoose包,你可以导入更轻量级的bson库:

const bson = require('bson');
new bson.ObjectId(); // 5cabe64dcf0d4447fa60f5e2

注意:还有一个名为bson-objectid的npm项目更轻

nwo49xxi

nwo49xxi4#

使用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');
pn9klfpd

pn9klfpd5#

import { mongo } from 'mongoose'
const newId = new mongo.ObjectId()

相关问题