您的位置:首页 > 编程语言 > Go语言

mongo学习笔记 -索引 -主键

2016-02-15 00:00 253 查看
db.user.ensureIndex({"name":1})

表示在user集合的name键创建一个索引,这里的1表示索引创建的方向,可以取值为1和-1

在这里面,我们没有给索引取名字,mongodb会为我们取一个默认的名字,规则为keyname1_dir1_keyname2_dir2...keynameN_dirN

keyname表示键名,dir表示索引的方向,例如,上面的例子我们创建的索引名字就是name_1

复合索引

db.imooc_2.insert({x:[1,2,3,4,5]})

多键索引

db.imooc_2.insert({x:1,y:2,z:3})

过期索引

db.imooc_2.ensureIndex({time:1},{expireAfterSeconds:30}) //expireAfterSeconds为过期时间 (秒)存储的字段类型不能为时间戳 只能为时间格式ISODate或ISODate数组(有一个到时间就会删除)否则不能被自动删除 hui

不能为复合索引

删除时间不是精确的 删除进程60秒才跑一次 删除还需要时间



全文索引

db.local_collection.ensureIndex({x:"text"})


[b]db.local_collection.ensureIndex({x:"text",s:"text"})
[/b]

[b][b]db.local_collection.ensureIndex({$**:"text"}) //对所有字段创建全文索引查找[/b][/b]

[b][/b]

[b][b]全文索引搜索数据方法[/b][/b]

[b][b]db.imooc_2.find({$text:{$search:"pp"}})[/b][/b]

[b][b]db.imooc_2.find({$text:{$search:"pp ll xx"}})[/b][/b]

[b][b]不包含某个值[/b][/b]

[b][b]db.imooc_2.find({$text:{$search:"pp ll -xx"}})[/b][/b]

[b][b]既包含又包含[/b][/b]

[b][b]db.imooc_2.find({$text:{$search:"\"aa\" \"rr\" \"gg\""}})[/b][/b]

[b][/b]

[b][b]全文索引相似查询[/b][/b]

[b][b]db.imooc_2.find({$text:{$search:"aa dd"}},{score:{$meta:"textScore"}})[/b][/b]

[b][b]相似度排序[/b][/b]

[b][b]db.imooc_2.find({$text:{$search:"aa dd"}},{score:{$meta:"textScore"}}).sort({score:{$meta:"textScore"}})[/b][/b]

[b][b]全文索引使用限制[/b][/b]

[b][b]每次查询只能制定一个$text查询[/b][/b]

$text查询不能出现在$not查询中

查询中如果包含了$text,hint不再起作用

全文索引还不支持中文

[b][/b]

[b][b]唯一主键[/b][/b]

[b][b]db.order_app_site.ensureIndex({"app_id":1},{"unique":true})[/b][/b]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: