我想要一个存储结构的类:
{
name: "blabla",
metaData: [ {a: "mya"}, { a:"mya2"} ]
}
`
现在,我希望在metaData [?]。 a 字段上有一个索引。
请注意,我正在使用Node.JS oriento库。
答案 0 :(得分:0)
我不知道您想要的索引是否可行,但如果您按照第4点的说法进行操作,则可以定义索引(我将其定义为唯一,但其他人将会工作)。
你可以:
create class Test
create property Test.name string
create property Test.metaData embeddedlist string
insert into Test set name = 'blabla', metaData = ['mya', 'mya2']
CREATE INDEX Test.metaData UNIQUE
insert into Test set metaData = ['mya', 'mya2'] # this will throw an exception
您在第3点询问的查询可能类似于:
select from Test where 'mya' in metaData
<强>更新强>
您还可以索引嵌入式地图。 (见here)
create property Test.metaDataTwo embeddedmap string
create index myIndex on Test (metaDataTwo by value) unique
insert into Test set name = 'blabla', metaDataTwo = {'prop1':'value1', 'prop2':'value2'}
insert into Test set metaDataTwo = {'prop3':'value1'} # this will throw an exception
使用此索引的查询应为:
select from Test where ( metaDataTwo containskey 'prop1' ) and ( metaDataTwo['prop1'] = 'value1' )