私はメーカーのコレクションを持っており、それぞれがいくつかの製品を製造しています。メーカーは文字列タグを持つことができ、メーカータグで製品を検索したいと思います(タグがメーカーから製品に継承されるように)。
TransformResults
これを行う 1 つの方法は、各製品にメーカーのタグを追加するインデックスを作成することです。
from product in results
select new {
...,
Tags = Database.Load("manufacturers/"+ product.ManufacturerId).Tags
}
しかし、私はそれを照会することができないようです:
this.Query<T>("TaggedProducts").Where(s => s.Tags.Any(tag => tag=="reliable"));
タグがインデックス化されていないためです。RavenDB Studio を使用しています。
これは地図です:
from product in docs.Products
select new {
product.Id,
product.ManufacturerId
}
フィールドを定義する必要があるかどうかは不明です。それを説明するドキュメントが見つかりませんでした。
これらはクラスです:
class Manufacturer
{
public int Id {get; set;}
public List<string> Tags {get; set;}
}
class Product
{
public int ManufacturerId {get; set;}
public int Id {get; set;}
}
可能であれば、Tags フィールドを Product クラスに追加しないようにしています。これは、タグをストーリーに設定できるという誤った印象を与えるためです。