FOXX应用程序可以自动创建索引吗?我有一个集合(模型),我需要一个字段作为性能的唯一索引 . 我可以在事后创建哈希,但我只是想确保使用模型定义不可用 . 如果是这样,我在哪里可以找到文档?
第二个问题是如何在FOXX中创建索引?我知道如何在arangojs中做到这一点,但我似乎无法在FOXX文档中找到它 . grab 这个问题 . 我想出来了:db.collection.createIndex() . 但男孩深藏在文档的“misc”部分 .
索引API不是Foxx API的一部分,但是一般的ArangoDB API(Foxx只是ArangoDB提供的用于构建和管理微服务的框架),可以在ArangoDB文档中找到:https://docs.arangodb.com/IndexHandling/WorkingWithIndexes.html
'use strict'; var myCollection = applicationContext.collection('my-data'); myCollection.ensureIndex({type: 'hash', fields: ['a', 'b'], unique: true});
在ArangoDB 2.x中,Foxx提供了分别称为存储库和模型的集合和文档(即存储在这些集合中的数据集)的包装器 . 每个存储库代表一个集合,每个模型代表一个文档 . ArangoDB 3.0将提供一个新的简化API,通过鼓励您使用ArangoDB已经提供的底层集合API来消除这种额外的复杂性 .
为了在Foxx存储库上使用特定于索引的方法(比如使用地理索引的集合的地理查询),您需要使用附加的 indexes 属性来定义存储库,如下所示:
indexes
'use strict'; var Foxx = require('org/arangodb/foxx').Repository; var MyModel = Foxx.Model.extend({/* ... */}); var MyRepo = Foxx.Repository.extend({ indexes: [ // same syntax as collection.ensureIndex: {type: 'hash', fields: ['a', 'b'], unique: true} ] }); var repo = new MyRepo(applicationContext.collection('my-data'), { model: MyModel });
在实例化存储库(即调用 new MyRepo(/* ... */) )时,Foxx将确保根据需要创建索引 .
new MyRepo(/* ... */)
请参阅https://docs.arangodb.com/Foxx/Develop/Repository.html#defining-indexes处的文档 .
或者,如果您不需要担心多次运行代码: ensureIndex 如果索引已经存在则不会执行任何操作 .
ensureIndex
1 回答
索引API不是Foxx API的一部分,但是一般的ArangoDB API(Foxx只是ArangoDB提供的用于构建和管理微服务的框架),可以在ArangoDB文档中找到:https://docs.arangodb.com/IndexHandling/WorkingWithIndexes.html
在ArangoDB 2.x中,Foxx提供了分别称为存储库和模型的集合和文档(即存储在这些集合中的数据集)的包装器 . 每个存储库代表一个集合,每个模型代表一个文档 . ArangoDB 3.0将提供一个新的简化API,通过鼓励您使用ArangoDB已经提供的底层集合API来消除这种额外的复杂性 .
为了在Foxx存储库上使用特定于索引的方法(比如使用地理索引的集合的地理查询),您需要使用附加的
indexes
属性来定义存储库,如下所示:在实例化存储库(即调用
new MyRepo(/* ... */)
)时,Foxx将确保根据需要创建索引 .请参阅https://docs.arangodb.com/Foxx/Develop/Repository.html#defining-indexes处的文档 .
或者,如果您不需要担心多次运行代码:
ensureIndex
如果索引已经存在则不会执行任何操作 .