2014-04-11 2 views
1

내 문서에 "댓글"컬렉션이 있으며 "마지막 댓글 날짜"에 대한 색인을 원합니다. 나는 이미 다른 필드에서 인덱스를 정적으로 정의 했으므로 인덱스에는 아무 문제가 없습니다. 그러나이 새 필드를 추가하려고하면 작동하지 않습니다. 나는 그것으로 검색 할 때 어떤 결과도 얻을 수 없다.RavenDB Max() 집계가있는 정적 인덱스 필드

나는이 DynamicList는 최대를 지원하지 않습니다 불평

testlastcommented = doc.Comments.Count > 0 ? doc.Comments.Select(c => c.DateEntered).Max() : null 

(나는 댓글이없는 경우 경우를 처리 할 주) 맥스() 집계와 최대 날짜를 얻는 시도했습니다(). Max()를 사용하여이 작업을 반복했음을 맹세 할 수는 있지만 지금은 작동하지 않습니다. 하지만 오류가 발생하지 않았더라도 필드를 쿼리 할 수 ​​없었습니다.

그래서 나는 맥스에 대한 대안() 오류없이

testlastcommented = doc.Comments.OrderByDescending(c => c.DateEntered).FirstOrDefault() 

이 인덱스로 OrderByDescending/FirstOrDefault에 의해 시도했다. 그러나 내가하는 일은 인덱스에 필드가 존재하지 않는 것과 같습니다. 알려진 값으로 어떤 결과도 얻을 수 없습니다.

계산 된 "LastCommented"속성을 문서에 추가하고 인덱싱했습니다. 그건 분명히 작동하지만 차라리 계산 된 필드를 문서에 저장하지 않아도됩니다.

답변

2

이 시도 :

testlastcommented = doc.Comments.Select(c => c.DateEntered) 
           .OrderByDescending(x => x) 
           .FirstOrDefault() 
+0

아니, 인덱스 오류 : "OrderByDescending"에 대한 과부하가 0 인수를 취합니다. – InfinitiesLoop

+0

이상한. 그게 효과가있다. –

+0

실행중인 RavenDB의 버전은 무엇입니까? –

관련 문제