programing

ObjectId 함수에 대한 Node.js Mongoose.js 문자열

randomtip 2023. 4. 1. 23:02
반응형

ObjectId 함수에 대한 Node.js Mongoose.js 문자열

mongoose를 사용하여 노드에서 문자열을 objectId로 변환하는 기능이 있습니까?스키마에서는 ObjectId가 지정되어 있지만 문자열에서 저장되면 mongo는 여전히 문자열일 뿐이라고 말합니다.예를 들어 개체의 _id는 다음과 같이 표시됩니다.objectId("blah").

다음과 같이 할 수 있습니다.

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

이것도 사용할 수 있습니다.

const { ObjectId } = require('mongodb');
const _id = ObjectId("4eb6e7e7e9b7f4194e000001");

그것을 하는 가장 간단한 방법

다음과 같이 할 수 있습니다.

var mongoose = require('mongoose');
var _id = mongoose.mongo.BSONPure.ObjectID.fromHexString("4eb6e7e7e9b7f4194e000001");

편집: 새로운 표준은 fromString이 아닌 HexString을 사용합니다.

코멘트로 판단하건대, 당신은 다음을 찾고 있습니다.

mongoose.mongo.BSONPure.ObjectID.isValid

또는

mongoose.Types.ObjectId.isValid
var mongoose = require('mongoose');
var _id = mongoose.mongo.ObjectId("4eb6e7e7e9b7f4194e000001");

이 방법을 해결할 수 없었습니다(확실히 오래 검색하지 않았습니다).

mongoose.mongo.BSONPure.ObjectID.fromHexString

스키마에서 속성이 ObjectId 유형이라고 가정할 경우 변환은 암묵적으로 이루어집니다.적어도 이것은 4.7.8의 경우와 같습니다.

다만, 다음과 같은 것을 사용할 수 있습니다.이것에 의해, 유연성이 향상됩니다.

function toObjectId(ids) {

    if (ids.constructor === Array) {
        return ids.map(mongoose.Types.ObjectId);
    }

    return mongoose.Types.ObjectId(ids);
}

express와 mongoose를 통해 REST API를 구현하는 경우 아래 코드 스니펫을 참조하십시오.(ADD의 예)

....
exports.AddSomething = (req,res,next) =>{
  const newSomething = new SomeEntity({
 _id:new mongoose.Types.ObjectId(), //its very own ID
  somethingName:req.body.somethingName,
  theForeignKey: mongoose.Types.ObjectId(req.body.theForeignKey)// if you want to pass an object ID
})
}
...

도움이 되기를 바라다

스키마를 사용하는 경우

const yourSchemma = new Schema({
"customerId": {
    type: mongoose.Types.ObjectId,
    required: true
}

});

ObjectId를 많이 사용하고 mongoose를 사용하지 않는 경우.types.ObjectId는 선언을 다음과 같이 구축할 수 있습니다.

const {
  Types: { ObjectId: ObjectId },
} = require("mongoose");

const id=ObjectId("4edd40c86762e0fb12000003")

언급URL : https://stackoverflow.com/questions/6578178/node-js-mongoose-js-string-to-objectid-function

반응형