[node.js] Mongoose로 ObjectId를 생성하려면 어떻게해야합니까?

ObjectIdMongoose 로 MongoDB를 생성하고 싶습니다 . ObjectIdMongoose 에서 생성자 에 액세스하는 방법이 있습니까?

  • 이 질문은 처음부터 새로 생성하는 것에 관한 것 ObjectId입니다. 생성 된 ID는 완전히 새로운 범용 고유 ID입니다.

  • 또 다른 질문은 기존 문자열 표현ObjectId 에서 를 만드는 것에 대해 묻습니다 . 이 경우 이미 ID의 문자열 표현이 있고 (유니버설 일 수도 있고 아닐 수도 있음) ID를 .ObjectId



답변

에서 ObjectId생성자를 찾을 수 있습니다 require('mongoose').Types. 예를 들면 다음과 같습니다.

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

id새로 생성 된 ObjectId.

Mongoose # Types 문서Types 에서 객체에 대한 자세한 내용을 읽을 수 있습니다 .


답변

ObjectIdmongoose를 사용하여 다음과 같이 새 MongoDB를 만들 수 있습니다 .

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 bsonlib를 사용하여 ObjectID를 생성하는 것을 발견했습니다 .

mongodb / mongoose 패키지 전체를 설치하지 않고 ObjectID 만 생성하면되는 경우 더 가벼운 bson라이브러리를 가져올 수 있습니다 .

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

참고 : bson-objectid더 가벼운 npm 프로젝트도 있습니다.


답변

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');


답변