mongodb安装
环境:centos6.5
https://www.mongodb.org/dl/linux/x86_64
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel62-3.2.4.tgz

1    安装mongodb
cd /usr/local/src
tar -xf mongodb-linux-x86_64-rhel62-3.4.4
mv mongodb-linux-x86_64-rhel62-3.4.4 /usr/local/mongodb    改名到/usr/local下名为mongodb
cd /usr/local/mongodb        mongodb主目录
mkdir /usr/local/mongodb/data    数据目录
mkdir /usr/local/mongodb/log    日志目录

2    启动mongodb
使用mongodb命令建立一个数据库链接,端口设置10001
数据库路径:/usr/local/mogodb/data
日志路径:/usr/local/mogodb/log/mogodb.log
启动程序放在后台,下面命令执行后按ctrl+c
nohup /usr/local/mogodb/bin/mogod --dbpath=/usr/local/mogodb/data --logpath=/usr/local/mongodb/log/mongl.log &
mongodb默认端口是27017

ps -ef | grep mongodb
root     14858 14518  1 15:01 pts/1    00:00:01 /usr/local/mongodb/bin/mongod --dbpath=/usr/local/mongodb/data/ --logpath=/usr/local/mongodb/log/mongo.log
root     14887 14518  0 15:02 pts/1    00:00:00 grep mongodb
nestat -ltpun | grep 14858
tcp        0      0 0.0.0.0:27017               0.0.0.0:*                   LISTEN      14858/mongod
lsof -i:27017
COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
mongod  14858 root    7u  IPv4 145311      0t0  TCP *:27017 (LISTEN)

3    设置环境变量
vim /etc/profile
export PATH=$PATH:/usr/local/mongodb/bin/
source /etc/profile

4    写shell脚本放到server中,参数写到配置文件中,方便启动和关闭mongodb
cat /usr/local/mongodb/mongodb.conf
port=27017
dbpath=/usr/local/mongodb/data
logpath=/usr/local/mogodb/log/mongo.log
logappend=true

5 编写启动脚本
vim /etc/init.d/mongodb
chmod 755 /etc/init.d/mongodb
/etc/init.d/mongodb status
/etc/init.d/mongodb stop
/etc/init.d/mongodb start
lsof -i:27017

#!/bin/bash
#
# mongod        Start up the MongoDB server daemon
#
# source function library
. /etc/rc.d/init.d/functions
#定义命令
CMD=/usr/local/mongodb/bin/mongod
#定义配置文件路径
INITFILE=/usr/local/mongodb/mongodb.conf
start()
{
    #&表示后台启动,也可以使用fork参数
    $CMD -f $INITFILE &
    echo "MongoDB is running background..."
}
   
stop()
{
    pkill mongod
    echo "MongoDB is stopped."
}
   
case "$1" in
    start)
        start
        ;;
    stop)
        stop
        ;;
    *)
        echo $"Usage: $0 {start|stop}"
esac

5    通过shell连接mongodb
# 在客户机上连接本机mongodb:mongo 192.168.133.143:27017
#mongo
2017-06-03T15:17:55.700+0800 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
2017-06-03T15:17:55.700+0800 I CONTROL  [initandlisten] **        We suggest setting it to 'never'
2017-06-03T15:17:55.700+0800 I CONTROL  [initandlisten]
2017-06-03T15:17:55.700+0800 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.
2017-06-03T15:17:55.700+0800 I CONTROL  [initandlisten] **        We suggest setting it to 'never'
>help        help可以查看他的参数

mongodb非正常关闭,导致启动失败的问题
关闭后再次重启后发现报错信息:
#/usr/local/mongodb/bin/mongod --logpath
/usr/local/mongodb/log/system.log --logappend --dbpath /data/mongodb --directoryperdb
 --auth --journal --profile=1 --slowms=5 --fork
forked process:4853
all output going to:/usr/local/mongodb/log/system.log
查看日志:
其中有句话:j._34:can't find its prececding file
            journal dir=/data/mongodb/journal
            dbexit:really exiting now
这是由于mongodb非正常关闭导致的
解决办法:
rm -rf /data/mongodb/mongod.lock
/usr/local/mongodb/bin/mongod --logpath --dpath /data/mongodb --repair
rm -rf /data/mongodb/journal/*j._4
启动mongodb:/usr/local/mongodb/bin/mongod --logpath --dbpath /data/mongodb
--directoryperdb --auth --journal --profile=1 --slowms=5 --fork &
正确关闭:
>use admin
>db.shutdownServer()
或者killall mongod

yum安装mongodb
1    创建repo
vim /etc/yum.repo.d/mongo-org.repo
[mongodb-org-3.2]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.2/x86_64/
gpgcheck=0
enabled=1

2    安装mongodb和相关工具
yum -y install mongodb-org
service mongod start
chkconfig mongod on
lsof -i:27017
日志文件:/var/log/mongodb/mongodb.log
配置文件:/etc/mongod.conf
数据目录:/var/lib/mongo

3    数据文件解释:
 cat /etc/mongod.conf
# mongo.conf        
#where to log    
logpath=/var/log/mongo/mongod.log    
logappend=true #以追加方式写入日志    
# fork and run in background    
fork = true        
#port = 27017 #端口         
dbpath=/var/lib/mongo #数据库文件保存位置    
directoryperdb=true
# Enables periodic logging of CPU utilization and I/O wait    
#启用定期记录CPU利用率和 I/O 等待    
#cpu = true   
     # Turn on/off security.  Off is currently the default   
# 是否以安全认证方式运行,默认是不认证的非安全方式    
#noauth = true   
#auth = true   
# Verbose logging output.    
# 详细记录输出    
#verbose = true   
# Inspect all client data for validity on receipt (useful for   
# developing drivers)用于开发驱动程序时的检查客户端接收数据的有效性    
#objcheck = true        
# Enable db quota management 启用数据库配额管理,默认每个db可以有8个文件,可以用quotaFiles参数设置    
#quota = true   
# 设置oplog记录等级    
# Set oplogging level where n is    
#   0=off (default)    
#   1=W    
#   2=R    
#   3=both    
#   7=W+some reads    
#oplog = 0   
# Diagnostic/debugging option 动态调试项    
#nocursors = true        
# Ignore query hints 忽略查询提示    
#nohints = true   
# 禁用http界面,默认为localhost:28017   
# Disable the HTTP interface (Defaults to localhost:27018).这个端口号写的是错的    
#nohttpinterface = true        
# 关闭服务器端脚本,这将极大的限制功能    
# Turns off server-side scripting.  This will result in greatly limited    
# functionality    
#noscripting = true   
# 关闭扫描表,任何查询将会是扫描失败    
# Turns off table scans.  Any query that would do a table scan fails.    
#notablescan = true   
# 关闭数据文件预分配    
# Disable data file preallocation.    
#noprealloc = true   
# 为新数据库指定.ns文件的大小,单位:MB    
# Specify .ns file size for new databases.    
# nssize = <size>    
# Accout token for Mongo monitoring server.    
#mms-token = <token>    
# mongo监控服务器的名称    
# Server name for Mongo monitoring server.    
#mms-name = <server-name>    
# mongo监控服务器的ping 间隔    
# Ping interval for Mongo monitoring server.    
#mms-interval = <seconds>    
# Replication Options 复制选项    
# in replicated mongo databases, specify here whether this is a slave or master 在复制中,指定当前是从属关系    
#slave = true   
#source = master.example.com    
# Slave only: specify a single database to replicate    
#only = master.example.com    
# or    
#master = true   
#source = slave.example.com

日常操作命令:
1)登录和退出
默认bind绑定的ip是127.0.0.1以及端口27017
mongo
mongo 127.0.0.1:27.17
绑定固定ip,比如bind_ip=168.133.142.11
mongo 168.133.142.11:27017
连接某个库
mongo ip:port/库名 -u用户名 -p密码
>show collections
mongodb会自动连接一个名为test的库,如果该库不存在,自动创建

关于命令的操作
>show dbs
查看服务器上的数据库

>use syp;
mongo中,db代表当前使用的数据库,db从test变成syp,如果没有syp,就会创建
并且不插入数据的话,该库也创建不了。

>show collections
查看当前数据库的集合

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
创建数据库
>use syp;
>show dbs;
>db.syp.insert({"name":"testdb"})
>show dbs

删除数据库
>db.dropDatase()
>show dbs

查看当前数据库
>db
>db.getName();

当删除数据test后,当前的db还是指向它,只有当切换数据库后,xxx才能消失。
>use test1
>db
>show dbs

修复当前库
>db.repairDatabase();

查看当前数据库状态
>db.stats();
当前db版本
>db.version();
查看当前db的链接机器地址
>db.getMongo();
从指定主机上克隆数据库
db.cloneDatabase("192.168.133.143");

从指定的机器上复制指定数据库数据到某个数据库
将本机的master_slave数据复制到wangshibo数据库中
>db.copyDatabases("master_slave","wangshibo","127.0.0.1");

collection操作

新建collection
>db.createCollection("hello")
>show collections

直接向一个不存在的collection中插入数据也能创建一个collection
>db.hello2.insert({"name":"lfqy"})
>show collections

删除collection
>db.Hello.drop()
ture    返回true说明删除成功,返回false说明删除失败

重命名collection
>show clooections
>db.hello2.renameCollection("Hello")
>show collections

建立索引在HELLO集合上,建立对ID字段的索引,1代表升序
>db.HELLO.ensureIndex({ID:1})

Record级别的操作

插入操作:
向user集合中插入两条记录:
>db.user.insert({'name':'GalGadot','gender':'female','age':28,'salary':11000})
>db.user.insert({'name':'Mike','gender':'female','age':28,'salary':1000})
用save完成类似的插入操作
>db.user.save({'name':'jim','gender':'male','age':32,'salary':8000})

查找操作
查找集合中的所有记录
>db.user.find()
查找集合中符合条件的记录
(1)单一条件
查询age为26的数据
>db.user.find({"age":26})
查询salary大于7000的数据
>db.user.find({salary:{$gt:7000}})
查询name中包含‘ent’的数据
>db.user.find({name:/ent/})
查询name中以G开头的数据
>db.user.find({name:/^G/})
查询name中以G结尾的数据
>db.user.find({name:/$G/})

(2)多条件“与”
查询age小于30,salary大于7000的数据
>db.user.find({age:{$1t:30},salary:{$gt:7000}})

(3)多条件“或”
查询age小于30,或者salary大于1000的记录
>db.user.find({$or:[{salary:{$gt:1000}},{age:{$1t:30}}]})

(4)查询第一条记录
 将上面的find替换成findOne
 
 (5)查询user集合中的name,age,salary字段
>db.user.find({},{name:1,age:1,salary:true})
    1表示显示此列的意思,也可以用true表示
>db.user.find({},{name:1,age:true,salary:1})    
 
 (6)查询指定字段的数据,并去掉重复数据
>db.user.distinct('gender')

对查询结果集的操作
提供了pretty print工具,db.collection.pretty()或者db.collection.forEach(printjson)
>db.user.find().pretty()

指定结果集显示的条目
显示结果集中的前3条记录
>db.user.find().limit(3)
查询第一条以后的所有数据
>db.user.find().skip(1)
查询跳过前两条以后的数据
>db.user.find().skip(2)
对结果集升序
>db.user.find().sort({salary:1})
降序
>db.user.find().sort({salary:-1})

统计集合中所有的记录条数
>db.user.find().count()
查询符合条件的记录数
查询salary大于4000或者大于10000的记录数
>db.user.find({$or:[{$lt:4000}},{salary:{$gt:10000}}}]}).count()

###################################################
删除操作

删除整个集合中的所有数据
>db.wangshibo.find()
>db.wangshibo.remove({})
>db.wangshibo.find()
remove()函数接受一个查询文档作为可选参数来有选择性的删除符合条件的文档
不会删除集合本身,原有的索引页不会被删除。
删除文档是永久的,不能撤销,也不能恢复。
drop()是把集合相关的信息整个删除(包括索引)

删除集合中符合条件的所有记录
>db.user.find()
>db.user.remove({name:'GalGadot'})
>db.user.find()
删除集合中符合条件的一条记录
>db.user.find()
>db.user.remove({salary :{$1t:30000},1})
>db.user.find()
也可以将命令逗号后的1改成true

更新操作:
赋值更新:db.collection.update(criteria,objNew,upsert,multi)
criteria:update的查询条件,类似sql update查询内where后面的
objNew:update的对象和一些更新的操作符如$,$inc...等,可以理解为sql update查询内set后面的
upsert:如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入
multi:mongodb默认是false,只更新找到的第一条记录,如何参数是true,
就把条件查出来多条记录全部更新
>db.user.find()
>db.user.update({name:'huihui'},{$set:{age:23}},false,true)
>db.user.find()
>db.user.update({name:'lfqy1'},{$set:{age:23}},true,true)
>db.user.find()

增值操作
>db.user.find()
>db.user.updata({gender:'female'},{$inc:{salary:50}},false,true)
>db.user.find()

转载于:https://www.cnblogs.com/fengzhongzhuzu/p/8670059.html

mongodb的安装和sql操作相关推荐

  1. mongodb 的安装与简单操作

    mongodb 的安装与简单操作 更好的阅读体验:https://www.wolai.com/shNyWgzza49EytaDHnr1j4 目录 环境 实验内容 安装mongodb 数据库操作 创建并 ...

  2. mongodb的安装与简单操作

    MongoDB中文社区:http://www.mongoing.com     数据库的使用场景 SQL(关系型数据库):MySQL.SQLServer  --->磁盘操作 1.高度事务性的场景 ...

  3. MongoDB的安装到使用 + Python操作MongoDB + 有关系和无关系数据库比较

    day1 - day7 mongoDB学习第一天 数据库 MongoDB (芒果数据库) 数据存储阶段 文件管理阶段 (.txt .doc .xls) 优点 : 数据可以长期保存 可以存储大量的数据 ...

  4. mongodb数据库安装和启动及操作笔记

    MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成.MongoDB 文档类似于 JSON 对象.字段值可以包含其他文档,下面linux系统安装方法如下: debi ...

  5. ubuntu下mysql语句_Ubuntu安装mysql及常用SQL操作语句

    Ubuntu安装mysql及常用SQL操作语句:安装mysql,在终端运行如下三条命令. sudo apt-get install mysql-server sudo apt-get install ...

  6. 安装MS SQL Server2000“以前的某个程序安装已在安装计算机上创建挂起的文件操作”的解决办法

    今天在安装MS SQL Server2000的时候,系统提示"以前的某个程序安装已在安装计算机上创建挂起的文件操作,需要重新启动后才能安装".我按照提示重启了一次,仍然提示这个错误 ...

  7. 【mongoDB基础篇①】安装与常用操作语句

    简述 mongoDB与redis同为noSql数据库,但是redis为kv数据库(key/value),而mongoDB为文档型数据库存储的是文档(Bson->json的二进制化).内部执行引擎 ...

  8. mongodb的安装以及客户端

    mongodb是一种非关系型的数据库,与传统的sql有很大的不同,但都是用于数据管理的,本人也是初学,很多地方都是模仿,在这里只是记录本人初次安装mongodb和客户端,记录一下安装的步骤,以便以后用 ...

  9. 手把手教你 MongoDB 的安装与详细使用(二)

    上一篇文章练习了,MongoDB 的以下操作 安装 MongoDB 服务 连接 MongoDB MongoDB 创建数据库 MongoDB 删除数据库 MongoDB 插入文档 MongoDB 删除文 ...

最新文章

  1. git 可视化工具_最值得推荐的8个git/github项目数据分析工具
  2. VS C++调用python进行画图matplotlib
  3. 计算机系统基础:计算机可靠性知识笔记
  4. confluence正常安装网页报错_NAS折腾手记1:在OMV5上安装ZFS On Linux的正确步骤
  5. ASP.NET Core Razor生成Html静态文件
  6. [蓝桥杯2019初赛]不同子串-substr,模拟
  7. python 解方程 sympy_用Python和Sympy求解方程并得到数值答案
  8. 内卷到逆天!机器学习领域不读PhD,我配不配找工作?
  9. 《如何搭建小微企业风控模型》第九节 单变量分析(上)节选
  10. 关于a元素href的注意点
  11. vue报错问题记录1-Cannot read property '0' of null
  12. MySQL 5.6.21 最新版的安装
  13. vue-admin-study1学习总结
  14. 操作系统 读者-写者问题
  15. 计算机毕业设计之微信小程序的点餐系统 网上订餐app的论文
  16. 透视投影时相机的参数设置
  17. 电子邮箱免费注册,比较好用的电子邮箱怎么注册?如何申请?
  18. Upload_上传_并传递额外参数
  19. 就是要弄懂你之—— 同步 异步 阻塞 非阻塞
  20. 1.python真的是万恶之源么?(初识python)

热门文章

  1. 项目应用EasyUI_Tab控件全部关闭
  2. 浏览器兼容性问题汇总
  3. Asp.Net递归遍历页面控件实例
  4. JS面向对象,__proto__和prototype详解
  5. C++---static关键字
  6. HTML+CSS制作3D旋转相册
  7. 怎样做地推,转化率提高20倍?
  8. 字节面试:如何用Redis实现一个分布式锁?
  9. Python在大部分领域都能胜任,为什么很多企业转向了Golang?
  10. 大众1.4t可以一直加92号汽油吗?有哪些需要注意的问题?