nodejs mongodb 네이티브 드라이버에서 문자열을 ObjectId로 변환하는 방법은 무엇입니까?
나는 mongodb 네이티브 드라이버를 사용하고 있습니다.nodejs
환경과 나는 변환이 필요합니다.id
업데이트 쿼리에서 사용할 ObjectId에 대한 문자열입니다. 어떻게 해야 합니까?
ObjectId(nodejs 드라이버 문서) 포함
BSON ObjectId를 나타내는 문자열(예: 웹 요청에서 수신)이 있는 경우 ObjectId 인스턴스로 변환해야 합니다.
const {ObjectId} = require('mongodb'); // or ObjectID
// or var ObjectId = require('mongodb').ObjectId if node version < 6
const updateStuff = (id, doc) => {
// `ObjectId` can throw https://github.com/mongodb/js-bson/blob/0.5/lib/bson/objectid.js#L22-L51, it's better anyway to sanitize the string first
if (!ObjectId.isValid(s)) {
return Promise.reject(new TypeError(`Invalid id: ${id}`));
}
return collection.findOneAndUpdate(
{_id: ObjectId(id)},
{$set: doc},
{returnOriginal: false}
);
};
var {ObjectId} = require('mongodb'); // or ObjectID Not Working
@habbub이 언급한 것처럼 나에게는 통하지 않을 것입니다.
하지만 사용할 때var ObjectID = require('mongodb').ObjectID; // convert string to ObjectID
mongodb에서 nodejs mongodb 네이티브 드라이브에서 문자열을 ObjectId로 변환할 수 있습니다.
http://mongodb.github.io/node-mongodb-native/2.2/api/ObjectID.html 을 참조하십시오.
사용할 수 있습니다.$toObjectId
집계 파이프라인에서 다음과 같은 것을 수행됩니다.
db.CollectionWithStringId.aggregate([
{$addFields: {
_id: { $toObjectId: "$_id" }
}}
])
출처 : https://docs.mongodb.com/manual/reference/operator/aggregation/toObjectId/
my mongodb 버전: 4.9.1(nodejs)
다음을 수행해야 합니다.
import { Collection, ObjectId } from "mongodb";
그런 다음 예를 들어 문서를 삭제하면 다음과 같이 됩니다.
return await collection.deleteOne({ _id: new ObjectId(id)});
언급URL : https://stackoverflow.com/questions/21076460/how-to-convert-a-string-to-objectid-in-nodejs-mongodb-native-driver
'programing' 카테고리의 다른 글
PostgreSQL: Postgre의 사용자에게 모든 권한 부여SQL 데이터베이스 (0) | 2023.05.24 |
---|---|
BsonDocument 개체를 클래스로 역직렬화하는 방법 (0) | 2023.05.14 |
문자열 배열에 문자열을 추가하는 방법은 무엇입니까?없습니다.함수 추가 (0) | 2023.05.14 |
iOS Simulator에서 네트워크 호출을 모니터링하는 방법 (0) | 2023.05.14 |
Postgres 스크립트에서 오류가 발생할 경우 어떻게 중지할 수 있습니까? (0) | 2023.05.14 |