이 블로그는 원래 데이비드 오스트로브스키의 개인 블로그에 게시되었습니다. 블로그 게시물 원본을 보려면 여기.
TL;DR: SELECT myBucket.* FROM myBucket
Couchbase Server 4.1에서 N1QL이 스타 쿼리에 대한 결과를 반환하는 방식의 변경으로 인해 .NET SDK가 반환된 결과를 역직렬화하는 방식이 손상된 것 같습니다. 이로 인해 쿼리
메서드를 사용하여 정확한 결과 수를 반환하되 모든 속성을 기본값으로 유지합니다. 그 이유는 다음과 같은 쿼리가 SELECT * FROM 기본값
기본값은 이제 다음과 같은 JSON 결과를 생성합니다:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
[ { "default": { "prop1": "...", "prop2": "..." } }, { "default": { "prop1": "...", "prop2": "..." } } ] |
보시다시피 각 문서는 버킷 이름 아래의 프로퍼티로 반환되지만, .NET SDK 구현에서는 이전 버전의 N1QL에서와 같이 JSON 문서 본문의 배열로 결과를 기대합니다:
1 2 3 4 5 6 7 8 9 10 11 12 |
[ { "prop1": "...", "prop2": "...", }, { "prop1": "...", "prop2": "...", } ] |
다행히도 이 문제를 쉽게 해결할 수 있습니다. 기본값
속성 대신 *
를 쿼리에 입력합니다: SELECT default.* FROM default
를 호출하면 이제 .NET SDK가 예상하는 형식으로 결과를 반환합니다.
사용해 보고 쿼리
메서드는 이제 모든 값이 올바르게 역직렬화된 객체를 반환합니다.