mirror of https://gitee.com/bigwinds/arangodb
45 lines
1.7 KiB
Markdown
45 lines
1.7 KiB
Markdown
|
|
|
|
@brief ensures that an index exists
|
|
`collection.ensureIndex(index-description)`
|
|
|
|
Ensures that an index according to the *index-description* exists. A
|
|
new index will be created if none exists with the given description.
|
|
|
|
The *index-description* must contain at least a *type* attribute.
|
|
Other attributes may be necessary, depending on the index type.
|
|
|
|
**type** can be one of the following values:
|
|
- *hash*: hash index
|
|
- *skiplist*: skiplist index
|
|
- *fulltext*: fulltext index
|
|
- *geo*: geo index, with _one_ or _two_ attributes
|
|
|
|
**sparse** can be *true* or *false*.
|
|
|
|
For *hash*, and *skiplist* the sparsity can be controlled, *fulltext* and *geo*
|
|
are [sparse](WhichIndex.md) by definition.
|
|
|
|
**unique** can be *true* or *false* and is supported by *hash* or *skiplist*
|
|
|
|
**deduplicate** can be *true* or *false* and is supported by array indexes of
|
|
type *hash* or *skiplist*. It controls whether inserting duplicate index values
|
|
from the same document into a unique array index will lead to a unique constraint
|
|
error or not. The default value is *true*, so only a single instance of each
|
|
non-unique index value will be inserted into the index per document. Trying to
|
|
insert a value into the index that already exists in the index will always fail,
|
|
regardless of the value of this attribute.
|
|
|
|
Calling this method returns an index object. Whether or not the index
|
|
object existed before the call is indicated in the return attribute
|
|
*isNewlyCreated*.
|
|
|
|
@EXAMPLES
|
|
|
|
@EXAMPLE_ARANGOSH_OUTPUT{collectionEnsureIndex}
|
|
~db._create("test");
|
|
db.test.ensureIndex({ type: "hash", fields: [ "a" ], sparse: true });
|
|
db.test.ensureIndex({ type: "hash", fields: [ "a", "b" ], unique: true });
|
|
~db._drop("test");
|
|
@END_EXAMPLE_ARANGOSH_OUTPUT
|