show dbs 显示所有的数据库
use psl 切换数据库
db.dropDatabase() 删除数据库
use psl mongodb会自动创建数据库
db.psl_collection.insert({"user":"psl","auth":"passwd"}) #插入josn格式数据到集合并创建数据库
db..psl_collection.find() #使用find来进行数据查询 空默认返回所有文档
db.psl_collection.insert({"user":"lishi","auth":"passwd",_id:1}) #_id可以插入,但全局不能重复
db.psl_collection.find({_id:1}) #查询条件为_id:1的数据行,过滤不符合条件的数据

for(i=3;i<100;i++) db.psl_collection.insert({x:i}) #以json格式插入多条数据
db.psl_collection.find() .count() #统计数据行数
db.psl_collection.find().skip(3) #跳过前面3条数据
db.psl_collection.find().skip(3).limit(5).sort({x:1}) # #跳过前面3条数据,限制只显示5条并按x的值进行排序
db.psl_collection.update({x:3},{x:999}) #查询x:3的数据并将其更新为x:999
db.psl_collection.insert({x:100,y:100,z:100})
db.psl_collection.update({x:100},{y:100}) #操作将会把x:100 z:100的数据覆盖,默认只更新第一条数据
db.psl_collection.update({x:100},{y:100},true) #true查找更新的数据不存在时自动创建
db.psl_collection.update{x:100},{$set {y:100}}) #只将这部份数据覆盖
db.psl_collection.update{x:100},{$set {y:100}},false,true) #true查找并更新多条数据
db.psl_collection.remove({x:100}) #删除数据默认删除查询到的所有数据,参数不允许为空
db.psl_collection.drop() #删除数据表 集合

索引
db.psl_collection.getIndexes() #查询集合内的索引情况
db.psl_collection.ensureIndex({x:1}) #创建索引 x:1 1代表正向排序 -1代表逆向排序
_id 是集合中的默认索引
单键索引 不会自动创建
db.psl_collection.ensureIndex({x:1}) #可以使用x:1的索引进行查询
多键索引 值有多个记录
复合索引 x
db.psl_collection.ensureIndex({x:1,y=2})
过期索引 一定时间后失效数据 如登录数据
db.psl_1.ensureIndex({x:1},{expireAfterSeconds:10}) #expireAfterSecond 单位为秒
db.psl_1.insert({time:new Date()})
过期时间值的类型必须是时间类型,如何指定了一个时间数组以最小的值来计算
过期索引不能是复合索引,删除时间不是精确的,数据量级不大的情况下会在60秒以内
全文索引
{author:"",title:"",article:""}
db.article.ensureIndex({key:"test"}) #全文索引固定字tese
db.article.ensureIndex({key1:"test"},{key2:"test"})
db.article.ensureIndex({"$**":"test"}) #key 不在是具体的值,表示集合中创建一个大的段的集合索引
db.article.find($text:{$search:"aa"}) #mongodb 只会创建一个全文索引 查询含有aa的数据行
db.article.find($text:{$search:"aa bb cc "}) #或查询 查询含有 aa bb cc 的数据行
db.article.find($text:{$search:"aa bb -cc "}) # 查询含有 aa bb 并不包含cc的数据行
db.article.find($text:{$search:"\"aa\" \" bb\" \"cc\" "}) #与查询 查询包含 aa bb cc 的数据行
全文索引相似度查询
db.article.find($text:{$search:"aa bb"},{score:{$meta:"textScore"}})
db.article.find($text:{$search:"aa bb"},{score:{$meta:"textScore"}}) .sort(1)
全文索引限制
索引属性:名字 唯一性 稀疏性 是否需要时间限制
名字 name:
db.collection.ensureIndex({},{name:""})
唯一性 unique:
db.collection.ensureIndex({},{unique:true/false})
稀疏性 所谓稀疏,就是在记录中不存在该索引字段时,不用创建索引,所以节约了磁盘占用;而且插入时由于不用更新索引,所以也加快了插入速度 sparse
db.collection.ensureIndex({},{sparse:true/false})
是否需要时间限制
地理位置索引