次のようなクラスがあるとします。
public class BOa
{
public ObjectId Id { get; set; }
public string Name { get; set; }
public List<BOb> VisiteEffettuate = new List<BOb>();
}
public class BOvalues
{
public DateTime Data { get; set; }
public int Age { get; set; }
public int Score { get; set;}
}
明確にするために、MongoDBには多くのBOaのコレクションがあります。それぞれに多くの(...のリスト)BO値が含まれています。FluentMongoLINQ(または他の方法)を使用して、たとえば、スコアが値より大きいか、2つの値の間の年齢であるBO値のリストを取得する方法がわかります。
SelectManyを使用したかったのですが、fluentmongoではサポートされていないようです。
この結果を得るのに最適な方法はどれですか?
前もって感謝します!
編集:LINQで代わりにQueryBuilderを使用してみました...例:
var query = MongoDB.Driver.Builders.Query.ElemMatch("VisiteEffettuate", MongoDB.Driver.Builders.Query.And(
MongoDB.Driver.Builders.Query.GT("Age", 32),
MongoDB.Driver.Builders.Query.EQ("Name", "xxxx")
)
);
var res = pazienti.Find(query);
...等々。うまくいくようです。ただし、QueryBuilderはそれほど文書化されておらず、(それについてはよくわかりませんが)プログラムでクエリを作成する可能性はありません(たとえば、動的LINQなど)。