インデックスAPIは、フォックスのAPIの一部が、一般的ArangoDBのAPIではありません(フォックスは単にArangoDBが建物やmicroservicesを管理するために提供するフレームワークである)と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は、ArangoDBが既に提供している基本的なコレクションAPIを使用することを奨励することにより、この複雑さを解消する、新しい簡略化されたAPIを提供します。
'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
});
:あなたがそうのような追加のindexes
プロパティでリポジトリを定義する必要があります(地理インデックス付きコレクションの地理クエリなど)フォックスリポジトリにインデックス固有のメソッドを使用するためには
リポジトリがインスタンス化された場合(つまり、new MyRepo(/* ... */)
が呼び出された場合)、Foxxは必要に応じてインデックスが作成されるようにします。
https://docs.arangodb.com/Foxx/Develop/Repository.html#defining-indexesのドキュメントを参照してください。
また、Foxxリポジトリを使用したくない場合は、上記の通常のインデックスAPIを使用して、コレクションを作成した後にセットアップスクリプトでインデックスを定義することができます。どちらの方法でも、コードの実行を何度も心配する必要はありません。ensureIndex
は、インデックスがすでに存在する場合は何も行いません。