请教mongodb 创建索引建立索引,time后的1是啥意思

索引支持查询的有效地提高效率。没有索引,MongoDB必须扫描集合的每个文档,以选择与查询语句匹配的文档。这种扫描效率很低,需要 MongoDB 处理大量的数据。
索引是特殊的数据结构,以易于遍历的形式存储数据集的一小部分。 索引存储特定字段或一组字段的值,按照索引中指定的字段值排序。
ensureIndex()方法要创建索引,需要使用MongoDB的ensureIndex()方法。
ensureIndex()方法的基本语法如下 -
&db.COLLECTION_NAME.ensureIndex({KEY:1})
这里的key是要在其上创建索引的字段的名称,1是升序。 要按降序创建索引,需要使用-1。
&db.mycol.ensureIndex({&title&:1})
在ensureIndex()方法中,可以传递多个字段,以在多个字段上创建索引。
&db.mycol.ensureIndex({&title&:1,&description&:-1})
ensureIndex()方法也接受选项列表(可选)。 以下是列表 -
background
在后台构建索引,以便构建索引不会阻止其他数据库活动,则指定background的值为true。默认值为false。
创建一个唯一的索引,使得集合不会接受索引键或键匹配索引中现有值的文档的插入。 指定true以创建唯一索引。 默认值为false。
索引的名称。如果未指定,则MongoDB通过连接索引字段的名称和排序顺序来生成索引名称。
在可能有重复项的字段上创建唯一索引。MongoDB仅索引第一次出现的键,并从集合中删除包含该键的后续出现的所有文档。指定true以创建唯一索引。 默认值为false。
如果为true,则索引仅引用具有指定字段的文档。这些索引在某些情况下(特别是排序)使用的空间较小,但行为不同。默认值为false。
expireAfterSeconds
指定一个值(以秒为单位)作为TTL,以控制MongoDB在此集合中保留文档的时间。
索引版本号。默认索引版本取决于创建索引时运行的MongoDB的版本。
权重是从1到99999之间的数字,并且表示该字段相对于其他索引字段在分数方面的意义。
default_language
对于文本索引,确定停止词列表的语言以及句柄和分词器的规则。 默认值为英文。
language_override
对于文本索引,要指定文档中包含覆盖默认语言的字段名称。默认值为language。
易百教程移动端:请扫描本页面底部(右侧)二维码并关注微信公众号,回复:"教程" 选择相关教程阅读或直接访问:http://m.yiibai.com 。
上一篇:下一篇:
加QQ群啦,易百教程官方技术学习群
注意:建议每个人选自己的技术方向加群,同一个QQ最多限加3个群。
Java技术群:
(人数:2000,等级:LV5,免费:否)
MySQL/SQL群:
(人数:2000,等级:LV5,免费:否)
大数据开发群:
(人数:2000,等级:LV5,免费:否)
Python技术群:
(人数:2000,等级:LV5,免费:否)
人工智能深度学习:
(人数:2000,等级:LV5,免费:否)
测试工程师(新群):
(人数:1000,等级:LV1,免费:是)
前端技术群(新群):
(人数:1000,等级:LV1,免费:是)
C/C++技术(新群):
(人数:1000,等级:LV1,免费:是)
Node.js技术(新群):
(人数:1000,等级:LV1,免费:是)
PostgreSQL数据库(新群):
(人数:1000,等级:LV1,免费:否)
Linux技术:
(人数:2000,等级:LV5,免费:否)
PHP开发者:
(人数:2000,等级:LV5,免费:是)
Oracle数据库:
(人数:2000,等级:LV5,免费:是)
C#/ASP.Net开发者:
(人数:2000,等级:LV5,免费:是)
数据分析师:
(人数:1000,等级:LV1,免费:是)R语言,Matlab语言等技术【MongoDB】TTL固定时间集合
时间: 17:20:13
&&&& 阅读:665
&&&& 评论:
&&&& 收藏:0
标签:&&&&&&&&&&&&&TTL索引(time to live index,具有生命周期的索引),这种索引允许为每一个文档设置一个超时时间。一个文档到达预设置的老化程度之后就会被删除。这种类型的索引对于缓存问题(比如会话的保存)非常有用。&&&&在创建索引的时候,顺便指定expireAfterSeconds选项就可以创建一个TTL索引,该集合也就属于TTL集合了。//&创建TTL索引,&设置超时时间为24小时
db.ttl.ensureIndex({date:1},{expireAfterSeconds:24*60*60});&&&&这样就在"date"字段上创建了一个TTL索引。如果一个文档的"date"存在并且它的值是日期类型,当服务器时间比文档的"date"字段的时间晚expireAfterSeconds秒时,文档就会被删除。&&&&为了防止活跃的会话被删除,可以在会话上有活动发生时将"date"字段更新为当前时间。只要"date"距离当前时间达到24小时,文档就会被删除。&&&&MongoDB每分钟对TTL索引进行一次清理,所以不应该依赖以秒为单位的时间来保证索引的存活状态。可以使用collMod命令来更改expireAfterSeconds的值:db.runCommand(
&&&&&&&&collMod:"ttl",
&&&&&&&&index:{
&&&&&&&&&&&&keyPattern:{date:1},&
&&&&&&&&&&&&expireAfterSeconds:3600
)&&&&在一个给定的集合上可以有多个TTL索引。TTL索引不能是复合索引,但是可以像普通索引一样用来优化排序和查询。本文出自 “” 博客,请务必保留此出处标签:&&&&&&&&&原文地址:http://lizhuquan0769.blog.51cto.com/1983
&&国之画&&&& &&&&chrome插件
版权所有 京ICP备号-2
迷上了代码!没有更多推荐了,
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!没有更多推荐了,
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!请教一个关于MongoDB的索引问题, 新加两千万数据后,查询暴慢【mongodb吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:1,710贴子:
请教一个关于MongoDB的索引问题, 新加两千万数据后,查询暴慢收藏
一个表里原来有4000万数据, 后来又一下子加了2000万,查询变得很慢。 查询都是建了索引的。 我现在想到的两个可能原因:1, 新导入数据后, 索引还没来得及起作用。2, mongo对新导入数据建完索引后,太大, 内存里放不下。 感觉第二个原因,可能性大些。 这样, 请问大家, 还会有别的什么原因不? 对于第二个原因, 怎么验证?
兼容MongoDB协议.用户按需在线扩容,轻松应对百万用户访问,免除繁琐运维具有多重安全防护措施和完善的性能监控体系,并提供专业的数据库备份,恢复及优化方案
你好啊,你的集合中的文档结构是什么样的啊?建了哪些索引呢?虽然我也不是很懂,但我们可以一起来分析一下
加内存,MongoDB太吃内存了。
这么点数据就慢了
登录百度帐号

我要回帖

更多关于 mongodb 创建索引 的文章

 

随机推荐