《MongoDB 入门篇》笔记

来源:互联网 发布:linux怎样备份数据库 编辑:程序博客网 时间:2024/05/17 02:38

安装与配置

curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.0.6.tgztar -zxvf mongodb-linux-x86_64-3.0.6.tgzcd mongodb(mv mongodb-linux-x86_64-3.0.6.tgz mongodb)mkdir data log conf  #创建配置目录cd confvim mongod.conf  #创建配置文件port=12345dbpath=datalogpath=log/mongodb.logfork=true

基本使用

启动MongoDB

./bin/mongod -f conf/mongod.conf  # 启动Mongodb服务,-f指定配置文件# tail log/mongo.log  #此时可以看到正在等待连接./bin/mongo 127.0.0.1:12345/test  #连接本地服务器/端口号/数据库use admindb.shutdownServer()tail log/mongod.log  # 可以看到MongoDB服务关闭
show dbs   #显示数据库use test   #选择数据库show dbs    #显示数据库use test   #选择/创建数据库db.dropDatabase()   #删除当前数据库db  #显示当前数据库db.test_col.insert({x:1})  #插入(创建集合)var_insert = {a:1, b:3}db.test_col.insert(var_insert)  #通过变量形式插入db.test_col.drop()  #删除test_col集合show collections  #显示集合db.test_col.find()  #查询所有数据,id字段自动生成,可以指定,但不能重复db.test_col.find({y:1})  #查询指定数据db.test_col.find().count()  #计数for(i=3;i<10;i++)db.test_col.insert({x:i}) #支持shell循环db.test_col.find().skip(2).limit(3).sort({x:1})  #跳过,限制,排序  db.collection.update(\<query\>,\<update\>,upsert:false,multi:false)db.test_col.update({x:1},{$set:{x:10}})  # 部分更新xdb.test_col.update({y:100}, {y:999},true)  #true表示若{y:100}不存在就插入{y:999}db.test_col.update({x:1}, {$set:{x:2}}, false, true)  #多条记录更新db.test_col.remove({x:2})  #删除

索引

db.test_col.getIndexes()  # 查看索引db.test_col.ensureIndex({x:1})  # 设置索引

_id索引:集合默认索引,对于每一个插入的数据,Mongodb都会自动生成一条唯一_id字段
单键索引:创建一个单键索引db.test_col.ensureIndex({x:1})
多键索引:创建一个多键索引db.test_col.ensureIndex({x:(1,2)})
复合索引:db.test_col.ensureIndex({x:1, y:2})
过期索引:
db.test_col.ensureIndex({time:1}, {expireAfterSeconds:10})db.test_col.insert({time:new date()})
- 过期索引的字段值必须是指定的时间类型IOSdata或IOSdata数组.
- 一旦索引过期,相应的数据就删除,即10秒后time:new date()数据被删除.
- 如果指定了IOSdata数组,安装最近的时间算起,过期索引不能是复合索引.

全文索引

每一个集合只允许创建一个全文索引
对字符串或字符串数组创建全文索引

db.test_col.ensure({"article":"text"})db.test_col.find({$"text":{"$search":"aa bb -cc"}})# aa bb之间的空格表示逻辑或,-cc表示不查找ccdb.test_col.find({$"test":{$"search":"\"aa\" \"bb\"}})  # "aa" "bb"用“”表示逻辑与