Computer >> 컴퓨터 >  >> 프로그래밍 >> MongoDB

MongoDB 레코드 삽입 시 따옴표 이스케이프 처리 방법

MongoDB에서 따옴표 이스케이프 처리하기

MongoDB에 문자열 데이터를 저장할 때 값 안에 큰따옴표(")가 포함되면 문법 오류나 데이터 손상이 발생할 수 있습니다. 이런 경우 큰따옴표의 유니코드 값인 \u0022를 활용하면 안전하게 이스케이프 처리할 수 있습니다.

1. 컬렉션 생성 및 문서 삽입

먼저 insert() 메서드를 사용하여 문서가 포함된 컬렉션을 생성해 보겠습니다. 이름 사이에 큰따옴표가 들어간 학생 이름을 \u0022로 표현하여 삽입합니다.

> db.escapingQuotesDemo.insert({ "StudentFullName": "John \u0022 Smith" });
WriteResult({ "nInserted" : 1 })
> db.escapingQuotesDemo.insert({ "StudentFullName": "David \u0022 Miller" });
WriteResult({ "nInserted" : 1 })
> db.escapingQuotesDemo.insert({ "StudentFullName": "John \u0022 Doe" });
WriteResult({ "nInserted" : 1 })
> db.escapingQuotesDemo.insert({ "StudentFullName": "Carol \u0022 Taylor" });
WriteResult({ "nInserted" : 1 })

모든 문서가 정상적으로 삽입되어 nInserted : 1이 반환된 것을 확인할 수 있습니다.

2. find() 메서드로 저장된 문서 확인

다음은 find() 메서드를 사용하여 컬렉션에 저장된 모든 문서를 조회하고, pretty()로 가독성 있게 출력하는 쿼리입니다.

> db.escapingQuotesDemo.find().pretty();

위 쿼리를 실행하면 다음과 같은 결과가 출력됩니다.

{
   "_id" : ObjectId("5ccf42e2dceb9a92e6aa195b"),
   "StudentFullName" : "John \" Smith"
}
{
   "_id" : ObjectId("5ccf42f0dceb9a92e6aa195c"),
   "StudentFullName" : "David \" Miller"
}
{
   "_id" : ObjectId("5ccf42f9dceb9a92e6aa195d"),
   "StudentFullName" : "John \" Doe"
}
{
   "_id" : ObjectId("5ccf4303dceb9a92e6aa195e"),
   "StudentFullName" : "Carol \" Taylor"
}

결과 분석

출력 결과를 보면 삽입 시 \u0022로 입력한 큰따옴표가 MongoDB에 저장될 때 자동으로 백슬래시(\)가 붙은 이스케이프 형태인 \"로 변환된 것을 확인할 수 있습니다. 즉, 유니코드 이스케이프 시퀀스를 사용하면 별도의 추가 처리 없이도 문자열 내부의 큰따옴표를 안전하게 저장할 수 있습니다.

이 방법은 JSON 형식의 문자열을 다룰 때 특히 유용하며, 따옴표 충돌로 인한 쿼리 오류를 예방하는 간단하고 확실한 해결책입니다.