use xxx_db;
db.collection.createIndex( keys, options ) == db.表名.createIndex( keys, options )
createIndex() 方法基本语法格式如下所示:
db:数据库的引用。
collection:集合的名称,表名。
keys:一个对象,指定了字段名和索引的排序方向(1 表示升序,-1 表示降序)。
options:一个可选参数,可以包含索引的额外选项。
options 参数是一个对象,可以包含多种配置选项,以下是一些常用的选项:
unique:如果设置为 true,则创建唯一索引,确保索引字段的值在集合中是唯一的。
background:如果设置为 true,则索引创建过程在后台运行,不影响其他数据库操作。
name:指定索引的名称,如果不指定,MongoDB 会根据索引的字段自动生成一个名称。
sparse:如果设置为 true,创建稀疏索引,只索引那些包含索引字段的文档。
expireAfterSeconds:设置索引字段的过期时间,MongoDB 将自动删除过期的文档。
v:索引版本,通常不需要手动设置。
weights:为文本索引指定权重。
示例
// 创建 age 字段的升序索引
db.myCollection.createIndex({ age: 1 });
// 创建 name 字段的文本索引
db.myCollection.createIndex({ name: "text" });
// 创建唯一索引
db.collection.createIndex( { field: 1 }, { unique: true } )
//复合索引
db.collection.createIndex({ "field1": 1, "field2": -1 }); // field1升序,field2降序
// 创建后台运行的索引
db.collection.createIndex( { field: 1 }, { background: true } )
// 创建稀疏索引
db.collection.createIndex( { field: 1 }, { sparse: true } )
// 创建文本索引并指定权重
db.collection.createIndex( { field: "text" }, { weights: { field: 10 } } )
//创建哈希索引
db.collection.createIndex( { field: "hashed" } )
查看索引
db.collection.getIndexes()
删除
// 删除指定的索引
db.collection.dropIndex( "indexName" )
// 删除所有索引
db.collection.dropIndexes()