快速安装MongoDB

一、MongoDB的简单安装(单机版测试用)

下载地址:https://www.mongodb.com/try/download/community

下载版本,我选用:4.4.22(中间数字为奇数:开发版,中间数字为偶数:稳定版)

1684481758907409.png

1、下载安装包:

wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.4.22.tgz

2、解压文件并重命名:

tar -zxvf mongodb-linux-x86_64-rhel70-4.4.22.tgz -C /opt/module/
cd /opt/module/
mv mongodb-linux-x86_64-rhel70-4.4.22/ mongodb/

3、创建dbpath和logpath

mkdir -p /mongodb/data /mongodb/log

4、在mongodb目录中启动mongodb server:

[root@master mongodb]# bin/mongod --port=27017 --dbpath=/mongodb/data --logpath=/mongodb/log/mongodb.log --bind_ip=0.0.0.0 --fork
about to fork child process, waiting until server is ready for connections.
forked process: 166069
child process started successfully, parent exiting

5、添加环境变量,方便执行mongodb命令,修改/etc/profile:

export MONGODB_HOME=/opt/module/mongodb
export PATH=$PATH:$MONGODB_HOME/bin

## source /etc/profile

6、停止mongodb:

mongod --port=27017 --dbpath=/mongodb/data --shutdown

二、MongoDD的简单使用

1、连接MongoDB:

mongo --host=localhost --port=27017  ## 本机时 host/port 可缺省

# 退出命令行
Ctrl + C

2、查看所有数据库列表:

> show dbs;
admin   0.000GB
config  0.000GB
local   0.000GB

## admin: 从权限角度考虑, 这是 root 数据库, 如果将一个用户添加到这个数据库, 这个用户自动继承所有数据库的权限, 一些特定的服务器端命令也只能从这个数据库运行, 比如列出所有的数据库或者关闭服务器
## local: 数据永远不会被复制, 可以用来存储限于本地的单台服务器的集合 (部署集群, 分片等)
## config: Mongo 用于分片设置时, config 数据库在内部使用, 用来保存分片的相关信息

3、数据库的基本操作(db = database):

# 直接use即可创建数据库
> use article
switched to db article

## 查看当前数据库
> db
article

### 但是此时show dbs命令却是没有article这个库的
> show dbs
admin   0.000GB
config  0.000GB
local   0.000GB

#### 删除数据库
> db.dropDatabase()
{ "ok" : 1 }

原因是:MongoDB存储分为“内存”+“磁盘”2部分,当use一个数据库,而这个数据库还是空数据库的时候,是在内存中的,此时还没有持久化到磁盘;而show dbs是从磁盘读取数据的;

只有当article不再是空数据库的时候,才会持久化到磁盘中;

4、集合的基本操作(collection):

# 创建集合
> db.createCollection("my")
{ "ok" : 1 }

## 显示集合列表
> show collections
my

### 删除集合
> db.my.drop()
true

5、文档的基本操作(document):

# 想comment集合中插入一条数据:
> db.comment.insert({"articleid":"100001","content":"我们不应该把清晨浪费在手机上, 健康很重要, 一杯温水幸福你我 他.","userid":"1002","nickname":"相忘于江湖","createdatetime":new Date("2019-0805T22:08:15.522Z"),"likenum":NumberInt(1000),"state":"1"})
WriteResult({ "nInserted" : 1 })

## 上面的命令可以隐式创建comment集合:
> show collections
comment

### 基本的查询操作
> db.comment.find()
{ "_id" : ObjectId("646734f3b738498991ffac6a"), "articleid" : "100001", "content" : "我们不应该把清晨浪费在手机上, 健康很重要, 一杯温水幸福你我 他.", "userid" : "1002", "nickname" : "相忘于江湖", "createdatetime" : ISODate("1970-01-01T00:00:00Z"), "likenum" : 1000, "state" : "1" }

#### 一次插入多条数据
> db.comment.insertMany([
...     {"_id":"1","articleid":"100001","content":"我们不应该把清晨浪费在手机上, 健康很重要, 一杯温水幸福你我 他.","userid":"1002","nickname":"相忘于江湖","createdatetime":new Date("2019-0805T22:08:15.522Z"),"likenum":NumberInt(1000),"state":"1"},
...     {"_id":"2","articleid":"100001","content":"我夏天空腹喝凉开水, 冬天喝温开水","userid":"1005","nickname":"伊人憔 悴","createdatetime":new Date("2019-08-05T23:58:51.485Z"),"likenum":NumberInt(888),"state":"1"},
...     {"_id":"3","articleid":"100001","content":"我一直喝凉开水, 冬天夏天都喝.","userid":"1004","nickname":"杰克船 长","createdatetime":new Date("2019-08-06T01:05:06.321Z"),"likenum":NumberInt(666),"state":"1"},
...     {"_id":"4","articleid":"100001","content":"专家说不能空腹吃饭, 影响健康.","userid":"1003","nickname":"凯 撒","createdatetime":new Date("2019-08-06T08:18:35.288Z"),"likenum":NumberInt(2000),"state":"1"},
...     {"_id":"5","articleid":"100001","content":"研究表明, 刚烧开的水千万不能喝, 因为烫 嘴.","userid":"1003","nickname":"凯撒","createdatetime":new Date("2019-0806T11:01:02.521Z"),"likenum":NumberInt(3000),"state":"1"}
... 
... ])
返回结构:
{
	"acknowledged" : true,
	"insertedIds" : [
		"1",
		"2",
		"3",
		"4",
		"5"
	]
}

##### 再次查询:
> db.comment.find()
{ "_id" : ObjectId("646734f3b738498991ffac6a"), "articleid" : "100001", "content" : "我们不应该把清晨浪费在手机上, 健康很重要, 一杯温水幸福你我 他.", "userid" : "1002", "nickname" : "相忘于江湖", "createdatetime" : ISODate("1970-01-01T00:00:00Z"), "likenum" : 1000, "state" : "1" }
{ "_id" : "1", "articleid" : "100001", "content" : "我们不应该把清晨浪费在手机上, 健康很重要, 一杯温水幸福你我 他.", "userid" : "1002", "nickname" : "相忘于江湖", "createdatetime" : ISODate("1970-01-01T00:00:00Z"), "likenum" : 1000, "state" : "1" }
{ "_id" : "2", "articleid" : "100001", "content" : "我夏天空腹喝凉开水, 冬天喝温开水", "userid" : "1005", "nickname" : "伊人憔 悴", "createdatetime" : ISODate("2019-08-05T23:58:51.485Z"), "likenum" : 888, "state" : "1" }
{ "_id" : "3", "articleid" : "100001", "content" : "我一直喝凉开水, 冬天夏天都喝.", "userid" : "1004", "nickname" : "杰克船 长", "createdatetime" : ISODate("2019-08-06T01:05:06.321Z"), "likenum" : 666, "state" : "1" }
{ "_id" : "4", "articleid" : "100001", "content" : "专家说不能空腹吃饭, 影响健康.", "userid" : "1003", "nickname" : "凯 撒", "createdatetime" : ISODate("2019-08-06T08:18:35.288Z"), "likenum" : 2000, "state" : "1" }
{ "_id" : "5", "articleid" : "100001", "content" : "研究表明, 刚烧开的水千万不能喝, 因为烫 嘴.", "userid" : "1003", "nickname" : "凯撒", "createdatetime" : ISODate("1970-01-01T00:00:00Z"), "likenum" : 3000, "state" : "1" }

可以看到,当我们插入数据时,如果自定了_id,那么就用这个作为ID,但是如果没指定,则会生成一个UUID字符串作为_id。







jiguiquan@163.com

文章作者信息...

留下你的评论

*评论支持代码高亮<pre class="prettyprint linenums">代码</pre>

相关推荐