【发布时间】:2020-02-06 14:04:52
【问题描述】:
使用 RavenDB v4.2 或更高版本,我想设置一个查询另一个集合的索引。基本上,在索引的映射部分重现 WHERE IN 子句。
以下模型代表两个系列。这里每个User 都有一组设备ID:
class Device {
public string Id { get; set; }
public string Name { get; set; }
}
class User {
public string Id { get; set; }
public string BlogPostId { get; set; }
public List<string> DeviceIds { get; set; }
}
现在考虑以下索引作为我要实现的目标的示例:
public class DeviceIndex : AbstractIndexCreationTask<Device, DeviceIndex.Result>
{
public class Result
{
public string Id { get; set; }
public string DeviceName { get; set; }
public bool HasUser { get; set; }
public int UserCount { get; set; }
}
public DeviceIndex()
{
Map = devices => from d in devices
select new Result
{
Id = d.Id,
DeviceName = d.Name,
HasUser = ... ?, // How to get this from Users collection?
UserCount = ... ? // same...
};
}
如何在此索引中填充HasUser true/false 和UserCount 属性?例如。如何在这里查询“用户”集合?
请注意,为简洁起见,此示例已被严重简化。我对解决方法或更改其背后的逻辑不太感兴趣。
【问题讨论】: