Ravendb Raven数据库查询
我正在使用MapReduce索引进行查询。我想选择filter by LicenseID/LicenseID,它可以是一个或多个,由文本框中输入的逗号分隔 e、 gRavendb Raven数据库查询,ravendb,Ravendb,我正在使用MapReduce索引进行查询。我想选择filter by LicenseID/LicenseID,它可以是一个或多个,由文本框中输入的逗号分隔 e、 g L1 (select having LicenseId only L1) L1,L2 (select having LicenseId only L1 OR L2) L2,L3,L5 (select having License
L1 (select having LicenseId only L1)
L1,L2 (select having LicenseId only L1 OR L2)
L2,L3,L5 (select having LicenseId only L3 OR L3 OR L5)
以下是结果文件:
public class GrossSalesByRevenueClass
{
public string LicenseId { get; set; }
public string RevClass { get; set; }
public decimal GrossSales { get; set; }
public decimal NetSales { get; set; }
public int Quantity { get; set; }
public bool NonSales { get; set; }
public DateTime Day { get; set; }
public string DayName { get; set; }
public int Month { get; set; }
public int Quarter { get; set; }
public int Year { get; set; }
}
索引为:
public class IdxGrossSalesByRevenueClassByDay : AbstractIndexCreationTask<Ticket, GrossSalesByRevenueClass>
{
public IdxGrossSalesByRevenueClassByDay()
{
Map = docs => from doc in docs
from c in doc.Coversfrom t in c.TicketItems
select new
{
LicenseId = doc.LicenseId,
RevClass = t.RevenueClass,
GrossSales = t.TicketItemGross,
NetSales = t.NetPrice,
Quantity = t.Quantity,
NonSales = t.IsNonSales,
Day = doc.TicketDate.Date,
DayName = doc.TicketDate.ToString("ddd")
};
Reduce = result => from r in result
group r by new { r.NonSales, r.RevClass, r.Day, r.LicenseId } into g
select new
{
LicenseId = g.Key.LicenseId,
RevClass = g.Key.RevClass,
GrossSales = g.Sum(x => x.GrossSales),
NetSales = g.Sum(x => x.NetSales),
Quantity = g.Sum(x => x.Quantity),
NonSales = g.Key.NonSales,
Day = g.Key.Day,
DayName = g.Select(x => x.DayName).FirstOrDefault(),
};
}
}
公共类idxgrossalesbyrevenueclassbyday:AbstractIndexCreationTask
{
公共IdxGrossSalesByRevenueClassByDay()
{
Map=docs=>来自文档中的文档
从单据中的c到单据中的t
选择新的
{
LicenseId=doc.LicenseId,
RevClass=t.RevenueClass,
Grossales=t.TicketItemGross,
NetSales=t.NetPrice,
数量=t.数量,
非销售=t.非销售,
日期=doc.TicketDate.Date,
DayName=doc.TicketDate.ToString(“ddd”)
};
Reduce=result=>来自结果中的r
按新{r.NonSales,r.RevClass,r.Day,r.LicenseId}将r分组为g
选择新的
{
LicenseId=g.Key.LicenseId,
RevClass=g.Key.RevClass,
Grossales=g.Sum(x=>x.Grossales),
NetSales=g.Sum(x=>x.NetSales),
数量=g.总和(x=>x.数量),
非销售=g.Key.非销售,
Day=g.Key.Day,
DayName=g.Select(x=>x.DayName).FirstOrDefault(),
};
}
}
我的疑问如下:
GrossSalesByRevenueClassCollection = session.Query<GrossSalesByRevenueClass, IdxGrossSalesByRevenueClassByDay>()
.TransformWith<GrossSalesByRevenueClassTransformer, GrossSalesByRevenueClass>()
.Where(x => x.Day >= d1 && x.Day <= d2 && (?????))
grossalesbyrevenueClassCollection=session.Query()
.与()
.其中(x=>x.Day>=d1&&x.Day类似的内容
var licenses = userLicenses.Split(",");
GrossSalesByRevenueClassCollection = session.Query<GrossSalesByRevenueClass, IdxGrossSalesByRevenueClassByDay>()
.Where(x => x.Day >= d1 && x.Day <= d2 && x.LicenseId.In(licenses))
var-licenses=userLicenses.Split(“,”);
GrossSalesByRevenueClassCollection=session.Query()
其中(x=>x.天>=d1和x.天