如何将RavenDB索引编写为预筛选的文档列表,而不是可搜索的
我想获得一个按null或空属性(字符串)筛选的用户列表 我已经为此创建了一个索引,但我不确定我的实现方法是否正确如何将RavenDB索引编写为预筛选的文档列表,而不是可搜索的,ravendb,Ravendb,我想获得一个按null或空属性(字符串)筛选的用户列表 我已经为此创建了一个索引,但我不确定我的实现方法是否正确 public class Users_Contributors : AbstractIndexCreationTask<User> { public Users_Contributors() { Map = users => from user in users where user.Co
public class Users_Contributors : AbstractIndexCreationTask<User>
{
public Users_Contributors()
{
Map = users => from user in users
where user.ContributionDescription != null && user.ContributionDescription != ""
select new {};
}
}
公共类用户\u贡献者:AbstractIndexCreationTask
{
公共用户(贡献者)
{
Map=users=>来自用户中的用户
其中user.ContributionDescription!=null&&user.ContributionDescription!=“”
选择新{};
}
}
所以我只想raven为我“准备”用户列表。我只是将所有用户对象从该索引中取出,而无需在查询时使用额外的筛选/where标准
上面的代码是正确的吗?或者我可以用更好的方法实现同样的功能吗?我觉得我错过了一些东西。谢谢 这样就行了。结果是索引只包含在其
ContributionDescription
字段中有内容的用户
如果您想使其更易于阅读,可以使用string.IsNullOrEmpty
,但这不会对性能产生任何影响
Map = users => from user in users
where !string.IsNullOrEmpty(user.ContributionDescription)
select new {};
这可能感觉很奇怪,因为结尾的对象是空的,但这只是定义了索引项。如果您不按任何其他字段进行排序或过滤,那么使用空对象就可以了。请记住,无论映射哪些字段,都会创建\u document\u id
条目