MongoDB配置与基本使用

本文详细介绍MongoDB在Ubuntu 14.04环境下的安装步骤、管理员与用户配置、认证模式启用及数据库操作等内容。通过实例展示了如何进行数据库创建、删除、复制,以及集合管理和文档操作。

mongoDB层次关系:      数据库>集合>文档

环境: Ubuntu14.04 MongoDB存储路径为/opt/mongodb 下文用MPATH代替

1 安装和启动

1.1 下载MongoDB3.2.9最新版本

1.2 tar xf MONGODB.tar.gz

1.3 添加到环境变量 /etc/profile

1.4 mongod -dbpath MPATH/data/db

1.5 mongo 启动mongoDB SHELL

 

2 配置管理员和用户

2.1 查看当前数据库[仅一个local] 切换到admin数据库[准备创建用户管理员]

show dbs

use admin

2.2 创建用户管理员[管理用户的帐号]

db.createUser({user:"master",pwd:"123456",roles:[{role:"userAdminAnyDatabase",db:"admin"}]})

# 成功创建后有以下提示

Successfully added user: {
	"user" : "master",
	"roles" : [
		{
			"role" : "userAdminAnyDatabase",
			"db" : "admin"
		}
	]
}

2.3 配置mongoDB认证和外链[默认只有localhost能连接]

设置ip [先关闭mongod服务]

sudo vim /etc/mongod.conf 

新建配置文件并修改输入以下内容[允许外链]

bind_ip = 0.0.0.0  

2.4 开启认证模式

mongod -f /etc/mongod.conf --auth --dbpath MPATH/data/db

auth: 认证模式

f: 配置文件 同--config

2.5 认证登陆mongoDB

mongo 

use dbs

ERROR # 没有权限

use admin

db.auth("master", "123456")

1 # 表示成功

2.6 创建其他用户

db.createUser({user:"hakase",pwd:"123456",roles:[{role:"readWrite",db:"nosql"}]})

2.7 用其他用户登陆

use admin

db.auth("hakase","123456")

3 使用数据库

3.1 创建数据库/集合

使用两个终端 其实是三个 还有一个mongod ...

    一个登陆hakase来使用nosql数据库

    一个登陆master来查看数据库情况

hakase:

use nosql

db.createCollection("test")

show collections

master:

show dbs

3.2 删除数据库

因为感觉太麻烦 重新建立了一个超级超级用户...

db.createUser(
  {user:"god",
  pwd:"123456",
  roles:["readWriteAnyDatabase","dbAdminAnyDatabase","clusterAdmin", "userAdminAnyDatabase"]}
)

 然后删除数据库nosql

use nosql

db.dropDatabase()

{ "dropped" : "nosql", "ok" : 1 } # 删除成功 用 show dbs 命令看到nosql数据库已不存在

3.3 复制数据库

因为数据库上一步删掉了 所以还得重新建... 这次用了god帐号登陆

use nosql

db.createCollection("test")

db.createCollection("test2")

show dbs

show collections

接下来复制nosql数据库为copy_nosql

db.copyDatabase("nosql", "copy_nosql")

show dbs

3.4 管理集合 依然在nosql中

创建集合

db.createCollection("test3")

删除集合

coll = db.getCollection("test3")

coll.drop()

show collections

在集合中插入文档

coll = db.getCollection("test")

coll.insert({name:"ming", age:20})

coll.insert({name:"hong", age:18})

coll.find()

在集合中查找文档

coll.find()

coll.find({name:"hong"})

在集合中删除文档

coll.remove({age:20})

coll.find()

在集合中更新/修改文档

唯一一个比较复杂的

db.update(query, update, opts)

query 指定匹配查询文档

update 设置更新运算符

    $inc递增

    $set设置字段的值

    $push 条目推送到数组

opts 有两个属性

upsert 若没有找到则插入 理解:     if (!find()) insert else update

multi 查询匹配的所有文档都更新 否则只更新第一个找到的文档

coll.update(
  {name:"hong"},
  {$set:{age:22}},
  {upsert:false, multi:true}
)

coll.find()

db.save(obj) 保存对象的更改 和update区别不大

但是要求要找_id 否则你怎么确定保存哪个对象呢?

coll.save(
  {_id:ObjectId("57de3078bf66f6a50d3ff11d"),
  name:"gang",
  age:19}
)

coll.find()

 

转载于:https://my.oschina.net/nichijou/blog/747457

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值