mongodb 셸 쿼리에서 GUID를 사용하는 방법
MongoDB 쉘을 사용할 때 가이드 데이터 유형(내 컬렉션에서 _id로 사용한 적이 있음)을 어떻게 사용합니까?
다음 형식이 작동하지 않습니다.
>db.person.find({"_id","E3E45566-AFE4-A564-7876-AEFF6745FF"});
감사해요.
쉽게 사용할 수 있습니다.
.find({ "_id" : CSUUID("E3E45566-AFE4-A564-7876-AEFF6745FF")})
_id 값을 문자열이 아닌 BinData 인스턴스와 비교해야 합니다.안타깝게도 BinData 생성자는 16진수 문자열 대신 Base64 문자열을 사용합니다.
GUID 값 끝에 두 개의 16진수가 없으므로 이 예에서는 "00"이라고 가정합니다.다음 값은 동일합니다.
16진수: "E3E45566-AFE4-A564-7876-AEFF6745FF00"(대시 무시)
base64: "ZlXk4+SvZKV4dq7/Z0X/AA=="
따라서 다음과 같은 질문을 해야 합니다.
>db.person.find({_id : newBinData (3, "ZlXk4+SvZKV4dq7/Z0X/AA==")}
이진 하위 유형이 3으로 올바르게 설정된 것으로 가정합니다.그렇지 않은 경우 데이터를 생성하는 데 사용된 드라이버는 무엇입니까?
쿼리 앞에 다음과 같은 js 함수를 사용할 수 있습니다.
function LUUID(uuid) {
var hex = uuid.replace(/[{}-]/g, ""); // removes extra characters
return new UUID(hex); //creates new UUID
}
db.person.find({"_id" : LUUID("E3E45566-AFE4-A564-7876-AEFF6745FF"});
쿼리를 수행하기 전에 함수를 .js 파일에 저장하여 로드하거나 열 수 있으며, 결과에서 값을 복사할 경우 다음을 사용하여 함수의 이름을 변경해야 합니다.
- 레거시 UUID의 LUUID
- Java 인코딩을 위한 JUUID
- .net 인코딩을 위한 NUUID
- c# 인코딩을 위한 CSUUID
- 파이썬 인코딩을 위한 PYUUID
오래된 문제인 것은 알지만, 추가적인 필요 없이 다음과 같은 문제를 사용할 수 있습니다.
find({_id:UUID('af64ab4f-1098-458a-a0a3-f0f6c93530b7')})
split() 및 join() 해결 방법을 사용하여 이 문제를 해결할 수 있습니다.
예를 들어 "E3E45566-AFE4-A564-7876-AEFF6745"를 사용하는 경우FF" 16진수 값:-
안에서.UUID()
함수, 반환되지 않습니다.BinData
몽고에 있으므로 모든 것을 제거해 보십시오.-
로 넘어가기 전에UUID
기능.
db.person.find({"_id":UUID("E3E45566-AFE4-A564-7876-AEFF6745FF".split("-").join(''))});
또는 변수를 정의하여 여러 줄로 정렬합니다.
var uuid = UUID("E3E45566-AFE4-A564-7876-AEFF6745FF".split("-").join(''))
db.person.find({"_id":uuid});
또는 간단한 함수를 만들어도 됩니다.
function BUUID(uuid){
var str = uuid.split("-").join('');
return new UUID(str);
}
db.person.find({"_id": BUUID("E3E45566-AFE4-A564-7876-AEFF6745FF")}).pretty();
언급URL : https://stackoverflow.com/questions/5652107/how-do-i-use-a-guid-in-a-mongodb-shell-query
'programing' 카테고리의 다른 글
최종 결과뿐만 아니라 주피터에서 전체 출력을 표시하는 방법은 무엇입니까? (0) | 2023.07.07 |
---|---|
C에서 선언문 안에 있는 콜론은 무엇을 의미합니까? (0) | 2023.07.07 |
기존 Git 프로젝트를 GitLab으로 가져오시겠습니까? (0) | 2023.07.07 |
@Spring Boot 2.0.0.REASE에 LocalServerPort가 없습니다. (0) | 2023.07.07 |
탐색 컨트롤러에서 뒤로 단추에 대한 작업 설정 (0) | 2023.07.07 |