コレクション プロパティに格納されているオブジェクトに大まかに関連して、「子ドキュメント」という用語を使用しています。これらの 2 つのクラスが与えられた場合:
public class Foo
{
public int Id { get; set; }
public string Name { get; set; }
public IList<Bar> Bars { get; set; }
}
public class Bar
{
public string Name { get; set; }
public string Description { get; set; }
public string SomeString { get; set; }
public int SomeInt { get; set; }
}
Name プロパティまたは Description プロパティのいずれかに「バラ」という用語が含まれるバーを照会したいと思います。Bar は Foo 内に格納されることに注意してください。
これは 2 つの質問です。
- Foo 型のコレクションに対してクエリを使用して Bars (「子ドキュメント」) を返すことはできますか? 名前に「バラ」が含まれるバーのコレクションを取得したいので、他のバーはスキップする必要があります。Foos (集約ルート) を返してほしくありません。
- もしそうなら、全文検索でそれを行う方法は?
#1に関しては、MongoDBではそのようなことは不可能であることを知っています.FooとBarを別々に保存するか、いずれかのBarの名前に「バラ」が含まれているFooをクエリしてから、クライアントで何かを行う必要があります. . でも、RavenDB には Live Projections / TransformResults があるので、もしかするとそれは可能だろうと思っていました。