在RavenDB中,我有一个看起来像这样的文档:
public class SystemNotification {
public string Body {get;set;}
public List<Guid> ReadBy {get;set;}
}
如何创建索引以有效地查询用户的未读通知数?或者有更好的方法来模拟这种情况吗?
答案 0 :(得分:1)
var count = session.Query<SystemNotification>()
.Where(x => !x.ReadBy.Any(y => y == yourGuid))
.Count();
是否有更好的方法对此进行建模取决于您在系统中拥有多少用户以及其他一些用户。
作为旁注:请勿使用Guids作为您的ID。它们很难阅读,与hilo键相比没有特别的优势。