博客
关于我
MongoDb的基本操作快速入门
阅读量:798 次
发布时间:2023-02-09

本文共 2435 字,大约阅读时间需要 8 分钟。

MongoDB简介及安装与操作指南

MongoDB简介

MongoDB是一款基于分布式存储的开源数据库系统,常被称为文档数据库。与传统的关系型数据库不同,MongoDB将数据存储为文档形式,每个文档由键值对(key-value pairs)组成,类似于JSON对象(BSON转化为JSON格式)。其内置执行引擎采用JS解释器,将文档存储为BSON格式,并在查询时将其转换为JS对象,使开发者能够利用熟悉的JS语法进行操作。

MongoDB与传统数据库的主要区别

  • 传统型数据库:结构化数据,表结构固定,所有行的内容必须符合表结构,列的个数及类型一致。
  • 文档数据库:文档存储的每篇文章可以有独特的结构或属性和值,数据灵活性更高。

MongoDB安装指南(CentOS7环境下)

1.下载MongoDB安装包

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

2.解压并安装

# tar -xvf mongodb-linux-x86_64-rhel70-3.4.4.tgz -C /usr/local

3.启动MongoDB服务

进入解压目录并重命名:

# cd /usr/local# mv mongodb-linux-x86_64-rhel70-3.4.4 mongodb# cd mongodb

创建数据目录并启动服务:

# mkdir -p /home/mongodata/{dbpath}/var/log/mongolog/# ./bin/mongod --dbpath /home/mongodata/ --logpath /var/log/mongolog/mongo.log --fork --port 27017

4.连接MongoDB

# ./bin/mongo

注意:在老版本中,MongoDB在启动时会占用较多磁盘空间,建议使用--smallfiles选项减少占用空间至400MB左右。

MongoDB基本操作示例

1.入门操作

查询所有库列表

> show dbs

切换数据库

> use local

创建数据库

> use shop# 或直接使用 use 后的数据库名称(库会自动创建)

创建集合(集合类似于传统数据库的表)

> db.createCollection('user')

插入数据

单篇文档插入
> db.user.insert({name: '张三', age: 18})
多篇文档插入
> db.user.insert([{name: '李四', age: 20}, {name: '王五', age: 25}])
指定ID插入
> db.user.insert({_id: 2, name: '赵六', age: 30})

查询数据

查询所有文档
> db.user.find()
查询特定字段
> db.user.find({},{name: 1})  # 查询name字段> db.user.find({},{name: 1, _id: 0})  # 查询name字段,忽略_id

删除操作

删除单篇文档
> db.user.remove({name: '张三'})
删除多篇文档
> db.user.remove()
删除指定文档
> db.user.remove({name: '李四', age: 20}, true)

2.增删改查(CURD操作)

增操作(Insert)

  • 插入单篇文档
> db.collection.insert({sn: '001', name: '小明'})
  • 插入多篇文档
> db.collection.insert([{sn: '002', name: '小红'},{sn: '003', name: '小蓝'}])
  • 指定ID插入
> db.collection.insert({_id: 2, sn: '004', name: '小强'})

删操作(Delete)

  • 删除指定文档
> db.collection.remove({sn: '002'})
  • 删除所有文档
> db.collection.remove()
  • 删除指定文档(仅删除一行)
> db.collection.remove({name: '张三'}, true)

改操作(Update)

  • 更新指定字段
> db.collection.update({name: '张三'}, {$set: {name: '张三变了'}})
  • 执行多行更新
> db.collection.update({name: '张三'}, {$set: {name: '张三变了'}}, {multi: true})
  • 插入新文档(upsert)
> db.collection.update({_id: 100}, {name: '李四'}, {upsert: true})

查操作(Find)

  • 查询所有文档
> db.collection.find()
  • 查询指定字段
> db.collection.find({},{name: 1})  # 查询name字段> db.collection.find({},{name: 1, _id: 0})  # 忽略_id字段

注意事项

  • MongoDB在启动时可能占用较多磁盘空间,建议使用--smallfiles选项减少占用空间。
  • 查询表达式匹配文档时,需要以JSON对象形式提供。
  • 更新操作默认只修改一行数据,使用multi选项可修改多行。
  • MongoDB优化建议

  • 定期备份数据库,确保数据安全。
  • 使用合适的索引优化查询性能。
  • 分布式处理大数据量时,采用分片(Shard)技术。
  • 配置合理的日志存储路径,防止磁盘过载。
  • 通过以上操作,您可以快速上手MongoDB,熟悉其文档数据库的特点和操作方式。

    转载地址:http://dsffk.baihongyu.com/

    你可能感兴趣的文章
    mysql 内连接、自然连接、外连接的区别
    查看>>
    mysql 写入慢优化
    查看>>
    mysql 分组统计SQL语句
    查看>>
    Mysql 分页
    查看>>
    Mysql 分页语句 Limit原理
    查看>>
    MySql 创建函数 Error Code : 1418
    查看>>
    MySQL 创建新用户及授予权限的完整流程
    查看>>
    mysql 创建表,不能包含关键字values 以及 表id自增问题
    查看>>
    mysql 删除日志文件详解
    查看>>
    mysql 判断表字段是否存在,然后修改
    查看>>
    MySQL 到底能不能放到 Docker 里跑?
    查看>>
    mysql 前缀索引 命令_11 | Mysql怎么给字符串字段加索引?
    查看>>
    MySQL 加锁处理分析
    查看>>
    mysql 协议的退出命令包及解析
    查看>>
    mysql 参数 innodb_flush_log_at_trx_commit
    查看>>
    mysql 取表中分组之后最新一条数据 分组最新数据 分组取最新数据 分组数据 获取每个分类的最新数据
    查看>>
    MySql 同一个列中的内容进行批量改动
    查看>>
    MySQL 命令和内置函数
    查看>>
    MySQL 和 PostgreSQL,我到底选择哪个?
    查看>>
    mysql 四种存储引擎
    查看>>