반응형
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
반응형
'programing' 카테고리의 다른 글
Windows DLL 파일을 테스트하여 32비트인지 64비트인지 확인하려면 어떻게 해야 합니까? (0) | 2023.05.21 |
---|---|
Xcode 프로젝트에 몇 줄의 코드가 있는지 어떻게 알 수 있습니까? (0) | 2023.05.21 |
Null이 아닌 속성이 과도 값을 참조함 - 현재 작업 전에 임시 인스턴스를 저장해야 합니다. (0) | 2023.04.01 |
Woocommerce 리셋 패스워드가 기능하지 않음 (0) | 2023.04.01 |
Retrofit2 Android:BEGIN_ARRAY가 필요한데 1행 2패스 $에 BEGIN_OBJECT가 있었습니다. (0) | 2023.04.01 |