MongoDB简单操作

mongodb

安装

Mac

brew install mongodb

Windows

https://www.mongodb.com/download-center/community

Ubuntu

【注意】如果系统中已经安装,千万别运行这个命令

sudo apt-get install mongodb

启动和关闭

启动

直接启动

sudo mongod
  1. Data directory /data/db not found 数据库目录不存在
    在这里插入图片描述

     sudo mkdir /data
     
     sudo mkdir /data/db
    
  2. 权限不够,需要添加 sudo mongod

  3. 虚拟机硬盘不够,导致mongodb需要的硬盘空间超过了虚拟机硬盘空间

      sudo mongod --smallfiles
    

后台服务启动

【注意】只有在 sudo apt-get install mongodb情况下才能使用

    sudo service mongodb start

关闭

  1. 直接使用快捷键关闭ctrl + C

  2. 登录到mongodb中进行关闭(推荐使用)

      use admin
      db.shutdownServer()
    
  3. 直接杀死进程(不推荐使用)

  4. 如果是后台服务的时候启动

     sudo service mongodb stop
    

启动参数

  1. –dbpath 数据库路径设置数据库的路径,默认设置/data/db
  2. –port 设置数据库端口号,默认端口27017
  3. –auth 启动验证模式
  4. –bind_ip 设置允许访问的IP地址,默认127.0.0.1,如果设置成0.0.0.0表示所有IP都可以访问(调试模式下可以这么设置,生产环境千万别这么设置)
  5. –config 表示通过配置文件启动,在配置文件中可以配置mongodb的所有启动参数和运行参数

mongodb使用操作

数据库

查看数据库

show databases/dbs

进入数据库

use 数据库名称

显示当前进入的数据库

db

创建数据库

插入数据即创建数据库

删除数据库

use 数据库
db.dropDatabase()

集合(表)操作

前提条件,进入数据库

use 数据库

列出集合

show collections

创建集合

db.createCollection('集合名')
// 或
// 插入数据即创建集合

删除集合

db.集合名.drop()

重命名集合

db.集合名.renameCollection('新的集合名称')

数据操作

创建

// 单条插入,参数必须是一个json串
db.mycoll.insert({
    "a":"x"
})
// 多条插入
data = [
    {"b":"y"},
    {"c":"z"}
]
db.mycoll.insertMany(data)

更新

【注意】默认更新是整体更新,局部更新在更新内容中把要更新的内容放置在$set的值中,默认情况下是只更新符合条件的第一条,如果需要批量更新需要添加更新方式multi

// 整体更新
db.stu.update(
    // 更新条件
    {
        "hometown":"四川"
    },
    // 更新内容
    {
        "name":"哪都通"
    }
)

在这里插入图片描述

// 局部更新
db.stu.update(
    // 更新条件
    {
        "hometown":"南阳"
    },
    // 更新内容
    {
        $set:{
            "name":"卧龙先生"
        }
    }
)

在这里插入图片描述

 // 批量更新
    db.stu.update(
        // 更新条件
        {
            "hometown":"龙虎山"
        },
        // 更新内容
        {
            $set:{
                "name":"python"
            }
        },
        // 更新方式
        {
            multi:true
        }
    )

在这里插入图片描述
保存

通过_id寻找如果找到就执行更新,如果没有找到就执行插入

db.mycoll2.save({
    "_id":3, // 如果_id没有被设置,会自动创建一个_id字段值 ObjectID(xxx) 构建
    "a":"y"
})

删除

db.stu.remove(
    // 删除条件
    {
        "hometown":"龙虎山"
    },
    // 删除方式
    {
        justOne:true
    }
)

在这里插入图片描述

    // 清空数据
    db.stu.remove({})

查询

默认查询 并 的关系

db.stu.find(
    // 查询条件
    {
        "hometown":"四川",
        "gender":false
    }
)

在这里插入图片描述
比较运算符

$gt 大于 ,
$gte 大于等于,
$lt 小于,
$lte 小于等于,
$ne 不等于

db.stu.find(
    // 查询条件
    {
        "age":{$lt:30}
    }
)

在这里插入图片描述
逻辑运算符

查询条件默认是并,使用或可用关键词 $or

db.stu.find(
    // 查询条件
    {
        $or:[
            {"hometown":"四川"},
            {"gender":false}
        ],
        age:{$lt:30}
    }
)

在这里插入图片描述
范围运算符

i n , in, in,nin

db.stu.find(
    // 查询条件
    {
        hometown:{$nin:["哪都通",'龙虎山']}
    }
)

在这里插入图片描述
正则表达式

// 方式一
db.stu.find(
    {
        name:/^张/
    }
)
// 方式二
db.stu.find(
    {
        name:{$regex:"^张"}
    }
)

在这里插入图片描述
自定义查询

db.stu.find(
    {
        $where:function(){
            // 1. 内部有个关键 this 表示当前记录
            // 2. 返回值必须是 true(符合条件) 或 false(不符合条件)
            return this.age > 30 && this.age < 44
        }
    }
)

在这里插入图片描述

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值