私はCouchbase v4.5および.NET SDKバージョン2.3.8を使用しています。私は、ビューをN1QLクエリに移行する途中です。ビューに利用可能なJavascirptを使用すると、ドキュメントの配列メンバーをソートし、続いて配列からただ1つの要素を選択する柔軟性が得られました。だから、私の見解では、私が持っていたのに対し:特定の配列要素の選択
'Username': doc.Document.LogActions.sort(function(a,b){ return (a.Time > b.Time) })[doc.Document.LogActions.length - 1].Username
を...私は今N1QLクエリで、.NET SDKを経由して同じことを達成するために苦労しています。注意点は、これをLINQだけでやろうとしていることです。私は完全なN1QLサポートを提供する生の文字列クエリを使用することができますが、チームリーダーはこれがLINQ経由で行われることを望んでいます... LINQ経由で絶対に行う方法がない限り。
私は次のことを試してみた:をソート
-
Username = doc.Document.LogActions
.OrderByDescending(logAction => logAction.Time)
.FirstOrDefault()
.Username,
配列内のオブジェクトのプロパティでソートすることが許可されていませんちょうど最終を取る - 最後
をサポートしていませんUsername = transaction.Document.LogActions
.LastOrDefault()
.Username,
並べ替えなし - Stil私は配列を返します
私が考えることができるもう一つの事は、配列を.NETに戻してそこにフィルタリングすることです。しかし、平均してアレイに含まれるアイテム数の基準はありません。むしろ、必要のないデータを取り戻すことは避けたいと考えています。
生の文字列クエリを使用するにはどうすればよいですか?理想的には、Time
プロパティに基づいて、配列から最新の「ログアクション」を検索しようとしています。