「配列」プロパティ(JSONのスピーチ)にオブジェクトが含まれているすべてのドキュメントを取得するにはMicrosoft Azure DocumentDBコレクションを照会したい与えられたフィルタ条件に一致する。プロパティ(オブジェクトの配列)に指定された条件を持つオブジェクトが含まれているDocumentDBの文書を見つける方法
これは私の文書である:
public class CouponReadModel
{
public List<Models.BookEntry> BookEntries { get; set; }
// some other properties
public class Models
{
public class BookEntry
{
public Guid OrderId { get; set; }
// some other properties
}
}
}
まず、私はいずれかを使用して、それを試してみました(TReadModelこの場合CouponReadModelです)
_documentClient
.CreateDocumentQuery<TReadModel>(_documentCollectionUri)
.Where(coupon => coupon.BookEntries.Any(be => be.OrderId == someOrderId));
私は次の例外ました:
Exception thrown: 'Microsoft.Azure.Documents.Linq.DocumentQueryException' in mscorlib.dll
Additional information: Method 'Any' is not supported.
を
"documentdb linq"のグーグルで私はこのブログ記事thisにつながっています。 素晴らしい!私は自分自身に言った問題はない!この記事では、LINQ演算子の数が配列(My BookEntries collection ?!)でサポートされていることがわかります。二度目の試み!
_documentClient
.CreateDocumentQuery<TReadModel>(_documentCollectionUri)
.Where(coupon => coupon.BookEntries.Count(be => be.OrderId == someOrderId) > 0);
私は別の例外が発生しました:
Exception thrown: 'Microsoft.Azure.Documents.Linq.DocumentQueryException' in mscorlib.dll
Additional information: Method 'Count' is not supported.
カウントがサポートされていませんか?ちょうど別の試み:
_documentClient
.CreateDocumentQuery<TReadModel>(_documentCollectionUri)
.Where(coupon => coupon.BookEntries.Count() > 0);
それは動作します! OK、カウントはサポートされていますが、述語のない生のカウントのみがサポートされています。
次はどうすればいいですか? DocumentDBをクエリして私が望むものを得る方法を教えてもらえますか?
私はあまり風味のない言語の使用を編集しました。ここで事を成熟させておこうか? –