MongoDB 셸을 사용할 때 guid 데이터 형식 (내 컬렉션에서 _id로 사용한)은 어떻게 사용합니까?mongodb 셸 쿼리에서 guid를 사용하는 방법
다음 형식은 작동하지 않습니다
>db.person.find({"_id","E3E45566-AFE4-A564-7876-AEFF6745FF"});
감사합니다.
MongoDB 셸을 사용할 때 guid 데이터 형식 (내 컬렉션에서 _id로 사용한)은 어떻게 사용합니까?mongodb 셸 쿼리에서 guid를 사용하는 방법
다음 형식은 작동하지 않습니다
>db.person.find({"_id","E3E45566-AFE4-A564-7876-AEFF6745FF"});
감사합니다.
_id 값과 BinData 인스턴스를 비교해야합니다 (문자열과 비교하지 않음). 불행히도 BinData 생성자는 16 진수 문자열 대신 Base64 문자열을 사용합니다.
GUID 값 끝에 16 진수 두 자리가 누락되어 있으므로이 예제에서는 "00"이라고 가정합니다. 다음 값은 동일합니다
가hex: "E3E45566-AFE4-A564-7876-AEFF6745FF00" (ignoring dashes)
base64: "ZlXk4+SvZKV4dq7/Z0X/AA=="
그래서 쿼리가 있어야한다 :
>db.person.find({_id : new BinData(3, "ZlXk4+SvZKV4dq7/Z0X/AA==")})
, 어떤 드라이버가 데이터를 만드는 데 사용하지 않으면 내가 이진 하위 유형이 올바르게 3으로 설정되어 있다고 가정하고 ?
쉽게 사용할 수 있습니다
이.find({ "_id" : CSUUID("E3E45566-AFE4-A564-7876-AEFF6745FF")})
CSUUID는 mongo에서 "표준"이 아닙니다. 쉘을 시작할 때 csharpdriver에서 파일을 가져와 포함시켜야합니다. 자세한 내용은 http://stackoverflow.com/a/8252047/111625를 참조하십시오. –
당신과 같이 쿼리 앞에 다음 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 파일에서 함수를 저장하고로드 할 수 또는 쿼리를 만들기 전에 열어 결과에서 값을 복사하는 경우 함수의 이름을 다음과 같이 바꿔야합니다.
오 사랑하는 파이썬 인코딩
알아요 ... 16 진수 문자열을 Base64 문자열로 변환하는 Javascript 함수를 찾으려고했지만 언어에 내장 된 문자열이없는 것 같습니다. 사용자가 작성한 기능을 검색 할 수 있습니다. 또는 자바 대신 C#으로 가져 오기 프로그램을 작성할 수 있습니까? –
guid를 base64 문자열로 변환하려면 :'Convert.ToBase64String (Guid.NewGuid(). ToByteArray())' –