记录下以前学习mongodb的安装方法及常用命令

mongodb数据库

通过brew安装mongodb

只记录了mac的安装方式

brew tap mongodb/brew
brew install mongodb-community
  • 创建保存数据的文件夹:mkdir -p ~/data/db
  • 设置权限:sudo chown id -u /data/db 注: ‘id -u‘表明 你当前登录的账户名 例如:sudo chown admin /data/db
  • 配置环境变量:PATH=/usr/local/Cellar/mongodb-community/4.2.0/bin:${PATH}}
  • 重启配置文件:source ~/.bash_profile

mongodb 启动服务

// 启动 brew services start mongodb-community

// 关闭 brew services stop mongodb-community

启动MongoDB的shell

mongo || mongosh

mongodb 可视化工具

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

mongodb可视化工具

mongodb常用命令

Show.dbs 查看所有的数据库

use demo(demo就是数据库的名称) 创建数据库,如果真的想把这个数据库创建成功,那么必须插入一个数据

下面命令表示给demo数据库的user表中插入数据

db.user.insert({"name":"zhangshan"}) 
db.user.insertMany({"name":"zhangshan"},{"name": "lisi"}) // 批量插入 

show collections 查看当前数据库有哪些集合(表)// 查看之前先use到要查看的数据库

db.user.find() 查看当前user的所有数据

db.user.distinct(“name”) 查询去掉后的当前集合中的某列的重复的数据。 // 会过滤掉name中的相同数据

db.user.find({“age”:22}) 查找age等于22的数据

db.dropDatabase() 删除当前的数据库

db.user.drop() 删除指定的集合

1.查询数据

db.user.find({“age”:{$gt:22}}) 查询年龄>22的记录

db.user.find({“age”:{$lt:22}}) 查询年龄<22的记录

db.user.find({“age”:{$lte:22}}) 查询年龄<=22的记录

db.user.find({“age”:{$gte:22}}) 查询年龄>=22的记录

db.user.find({“age”:{ g t e : 22 , gte:22, gte:22,lte:26}}) 查询年龄>=22 && <=26的记录

db.user.find({“name”: /mongo/}) 查询name中包含mongo的数据 一般模糊查询用于搜索

db.user.find({“name”: /^mongo/}) 查询name中以mongo开头的

db.user.find({“name”: /mongo$/}) 查询name中以mongo结尾的

db.user.find({},{“name”:1}) 查询指定列 name的数据

db.user.find({},{“name”:1,“age”:1}) 查询指定列 name、age的数据

db.user.find({“age”:{$gt:22}},{“age”:1}) 查询age大于22的数据 (查询指定列)

db.user.find().sort({“age”:1}) 升序 按照年龄排序 1 升序 -1 降序

db.user.find().sort({“age”:1}) 降序 按照年龄排序 1 升序 -1 降序

db.user.find({“name”:“wangwu”,“age”:25}) 查询name=wangwu 年龄=25的记录

db.user.find().limit(5) 查询前5条数据

db.user.find().skip(10) 查询10条以后的数据

db.user.find().skip(5).limit(10) 查询5-10之间的数据 // 可用于分页,limit是pageSize,skip是(page-1)*pageSize

可以使用for循环快速添加数据

for(var i=1;i<100;i++){
... db.admin.insert({"username":"zhangsan"+i,"age":i})
... };

db.user.find().count() 统计数量,查看一共有多少条数据

db.user.find({$or:[{“name”:“wangwu”},{“name”:“haha”}]}) 查询name= wangwu 或者haha的数据

db.user.findOne() 查询第一条数据

db.user.find({“age”:{$gte:25}}).count() 查询某个结果集的记录条数统计数量

2.修改数据

$set: 用来指定一个键并更新键值,若键不存在并创建

db.user.update({“name”:“wangmazi”},{$set:{“name”:“王麻子”}}) 修改名字

db.user.update({“name”:“张三”},{$set:{“gender”: “男”}}) 给名字叫张三的增加一个性别

db.user.update({“age”:18},{$set: {“sex”:“女”}},{multi: true}) 批量更新数据

更新数据的时候如果不写$set,意思就是替换之前的数据

$inc:可以对文档的某个值为数字型(只能为满足要求的数字)的键进行增减的操作

db.user.update({name:‘李四’},{$inc:{age:5}}) 给名字叫李四的人,在当前年龄的基础上增加四岁

$unset:用来删除键

db.user.update({name:‘李四’},{$unset:{age:1}}) 删除李四的年龄

$push–数组修饰器:向文档的某个数组类型的键添加一个数组元素,不过滤重复的数据。添加时键存在,要求键值类型必须是数组;键不存在,则创建数组类型的键

db.user.update({name:‘李四’}, {$push: {hobby: ‘喝酒’}}) 给李四加一个爱好

3.删除数据

db.user.remove({“name”:“hehe”}) 删除数据

db.admin.remove({“age”: {$gt: 30}}, {justOne:true}) 只删除一条数据

注意:删除数据的时候一定要加条件,不然就是删除所有的数据,只能删库跑路了

设置权限

启用权限前,需要先创建管理员用户

  1. Use admin
  2. 创建一个超级用户root
db.createUser(
	{
	  user: "root",
	  pwd: "root",
	  roles: [ {role: "root", db: "admin"} ]
	}
)
  1. 启用权限

    在mongod.conf文件中配置 (我本机的路径 /usr/local/etc/mongod.conf)

    security:
        authorization: enabled
    

    完整的配置

    systemLog:
       destination: file
       path: "logs/mongodb/mongod.log"
       logAppend: true
    storage:
       journal:
          enabled: true
       dbPath: "data/mongodb/db"
    net:
       port: 27017
    security:
        authorization: enabled
          
    

    我们先停止mongodb服务,因为我是使用命令方式启动,所以只需要Ctrl + C就可以关闭服务

  1. 命令行重新启动刚才配置的conf文件生效

    mongod --config /usr/local/etc/mongod.conf (路径视本机而定)

  1. 权限验证
1. use admin 
2. db.auth('账户名', '密码')
3. 返回结果 1 证明登录成功 (如果用mongosh, 返回结果是:{ok:1})
4. show dbs 查看数据库

设置普通用户后续再记录

未完,待续~~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值