假设我有一个如下架构:
Father { // Type: 1
Id
}
Mother { // Type: 2
Id
}
Child {
Parents: [
{ ParentId, ParentType } // ParentType could be 1 or 2 acording to entity's type
]
}
我怎样才能创建一个允许我们使用DeleteByIndex并接受lucene查询的索引,例如:“Parents,ParentId:xyz AND Parents,ParentType:2”?
当我尝试创建索引时如下:
Map = views => from view in views
select new
{
view.ParentId,
view.ParentType,
view.Parents
}
RavenDb未能删除并说“Parents,ParentId”尚未编入索引。 这样做的原因是我想删除所有儿童数据,因为它是{Mother,Father}之一的孩子。
答案 0 :(得分:2)
语法Parents,ParentId
仅适用于动态索引,使用静态索引,您正在定义字段名称,您可以根据需要为它们命名。
Map = views => from view in views
from parent in view.Parents
select new
{
parent .ParentId,
parent .ParentType
}
但是,如果您的系统可以有很多父母,请查看有关扇出索引的文档。