内容简介:索引的目的就是优化搜索。如:当查询中仅适用一个键时,可以对该键建立索引。
索引
索引的目的就是优化搜索。
如:
db.foo.find({'name': 'yan'})
创建索引
当查询中仅适用一个键时,可以对该键建立索引。
db.foo.ensureIndex({'name': 1})
db.foo.find({'name': 'yan'}, {background: true})
唯一索引
唯一索引,该键不存在重复的值
db.foo.ensureIndex({'name': 1}, {'nuique': true})
创建唯一索引的同时,去重复
db.foo.ensureIndex({'name': 1}, {'nuique': true, dropDups: true})
==explain== 和 ==hint==
explain
会返回查询使用的索引情况(如果有索引的话)
如:
db.foo.find({name: 'jundong'}).explain()
hint
强制使用某个索引(多数情况下这种指定都没有必要)
db.foo.find({name: 'jundong'}).hint({'name': 1})
删除索引
删除指定索引
db.runCommand({dropIndexes: 'foo', index: 'name'})
删除所有索引
db.runCommand({dropIndexes: 'foo', index: '*'})
删除集合也会删除索引。删除集合的所有文档不影响索引
地理空间索引
找到离当前位置最近的N个场所。
db.map.ensureIndex({gps: '2d'})
gps
必须是某种形式的一对值。如
{gps: [0, 100]}
{gps: {x: -30, y: 30}}
{gps: {suiyi1: -180, suiyi2: 180}}
默认情况下,地理空间索引假设值得范围是 -180~180, 如果要用其它值,可以通过ensureIndex的选项来指定最大最小值
db.map.ensureIndex({gps: '2d'},{min: -1000, max: 1000})
查询的时候,与一般的查询差别不大,只不过需要用 ‘$near’
db.map.find({gps: {$near: [40, -73]}})
没有指定limit的值,默认是100个文档
db.map.find({gps: {$near: [40, -73]}})。limit(10)
也可以用geoNear完成相同操作,它还会返回每个文档到查询点的距离。
db.runCommand({geoNear: 'map', near: [40, -73], num: 10})
MongoDB不但能找到靠近一个点的文档,还能找到指定形状内的文档。……
复合地理空间索引
如:用户要找出周围所有的咖啡店。
创建索引:
db.map.ensureIndex({location: '2d', desc: 1})
搜索:
db.map.find({location: {$near: [-79, 30]}, desc: 'cooffeeshop'}).limit(10)
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- MySQL索引使用说明(单列索引和多列索引)
- Elasticsearch索引的基本操作(3)-索引的滚动索引
- Coreseek 增量索引模拟实时索引
- Coreseek 增量索引模拟实时索引
- MySQL高效索引之覆盖索引
- MySQL -- 普通索引与唯一索引
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Java技术手册(第6版)
Benjamin J Evans、David Flanagan / 安道 / 人民邮电出版社 / 2015-12-1 / 79.00
《Java技术手册 第6版》为《Java 技术手册》的升级版,涵盖全新的Java 7 和Java 8。第1部分介绍Java 编程语言和Java 平台,主要内容有Java 环境、Java 基本句法、Java 面向对象编程、Java 类型系统、Java的面向对象设计、Java 实现内存管理和并发编程的方式。第2部分通过大量示例来阐述如何在Java 环境中完成实际的编程任务,主要内容有编程和文档约定,使......一起来看看 《Java技术手册(第6版)》 这本书的介绍吧!