'collection.ensureIndex(index-description)' method creates an index if none exists with the given description.
'index-description' is a JSON object, following table summarizes the attributes of 'index-description' object.
|
Attribute |
Description |
|
type |
It is one of the following values.
a. persistent: persistent index b. fulltext: fulltext index c. geo: geo index, with one or two attributes |
|
name |
Specifies index name. It must be unique within the collection. If name is not specified, then a unique name will be generated by ArsangoDB. |
|
sparse |
Boolean value either true or false. A sparse index does not contain documents for which at least one of the index attribute is not set or contains a value of null. |
|
unique |
Boolean value either true or false. |
|
deduplicate |
Boolean value either true or false. 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. |
Let’s create ‘employees’ collection to experiment with.
127.0.0.1:8529@abc_org> db._create("employees")
[ArangoCollection 482, "employees" (type document, status loaded)]
ArongoDB create an index on _key attribute by default.
127.0.0.1:8529@abc_org> db.employees.getIndexes()
[
{
"fields" : [
"_key"
],
"id" : "employees/0",
"name" : "primary",
"selectivityEstimate" : 1,
"sparse" : false,
"type" : "primary",
"unique" : true
}
]
Example 1: Create a persistent index on field age
127.0.0.1:8529@abc_org> db.employees.ensureIndex({ type: "persistent", fields: ["age"] });
{
"deduplicate" : true,
"fields" : [
"age"
],
"id" : "employees/608",
"isNewlyCreated" : true,
"name" : "idx_1699387292727115776",
"selectivityEstimate" : 1,
"sparse" : false,
"type" : "persistent",
"unique" : false,
"code" : 201
}
Example 2: Create a persistent index on fields firstName, lastName
127.0.0.1:8529@abc_org> db.employees.ensureIndex({ type: "persistent", fields: ["firstName", "lastName"], name: "firstNameLastNameIndex" });
{
"deduplicate" : true,
"fields" : [
"firstName",
"lastName"
],
"id" : "employees/648",
"isNewlyCreated" : true,
"name" : "firstNameLastNameIndex",
"selectivityEstimate" : 1,
"sparse" : false,
"type" : "persistent",
"unique" : false,
"code" : 201
}
Now query for all the indexes created for the collection employees.
127.0.0.1:8529@abc_org> db.employees.getIndexes()
[
{
"fields" : [
"_key"
],
"id" : "employees/0",
"name" : "primary",
"selectivityEstimate" : 1,
"sparse" : false,
"type" : "primary",
"unique" : true
},
{
"deduplicate" : true,
"fields" : [
"age"
],
"id" : "employees/608",
"name" : "idx_1699387292727115776",
"selectivityEstimate" : 1,
"sparse" : false,
"type" : "persistent",
"unique" : false
},
{
"deduplicate" : true,
"fields" : [
"firstName",
"lastName"
],
"id" : "employees/648",
"name" : "firstNameLastNameIndex",
"selectivityEstimate" : 1,
"sparse" : false,
"type" : "persistent",
"unique" : false
}
]
No comments:
Post a Comment