创建索引: db.t_order_detail.createIndex({"order_id":1}) 复合索引: db.t_order_detail.createIndex({"order_id":1,"detail_id":1,"batch_id":1}) 在后台创建索引: db.t_order_detail.createIndex({order_id:1},{background:1}) 创建TTL索引: a.经过指定的时间间隔后,集合失效: db.t_order_detail.createIndex( { "createTime": 1 }, { expireAfterSeconds: 60*60 } ) -----过期时间(单位秒) 使用getIndexes() 查看 修改TTL索引的expireAfterSeconds属性值: db.runCommand( { collMod: "t_order_detail",index: { keyPattern: { createTime: 1 },expireAfterSeconds: 7200}}) b.指定时间点过期,集合失效: db.t_order_detail.createIndex({"expireAt": 1},{expireAfterSeconds:0}) db.t_order_detail.insert({ "createdAt": new Date('Oct 21, 2018 21:30:00'), "log_Event": 1, "log_Message": "Success!" }) 查看索引: db.t_order_detail.getIndexes() 查看索引键: db.t_order_detail.getIndexKeys() 查看集合索引总大小: db.t_order_detail.totalIndexSize() 查看集合各索引的详细信息: db.t_order_detail.getIndexSpecs() 删除索引: db.t_order_detail.dropIndex("index_name") 删除所有索引 db.t_order_detail.dropIndexes()方法用于删除全部的索引 索引重建: db.t_order_detail.reIndex({"order_id":1})

备注: 在前台创建索引期间会锁定集合,会导致其它操作无法进行数据读写,在后台创建索引,会定期释放写锁,从而保证其它操作的运行,但是后台操作会在耗时更长,尤其是在频繁进行写入的集合上。