Quantcast
Channel: CodeSection,代码区,数据库(综合) - CodeSec
Viewing all articles
Browse latest Browse all 6262

初识 MongoDB

$
0
0

之前对于 MongoDB 的了解比较泛泛,也是因为在工作中使用的比较少的缘故,好吧就是没用过。。。最近工作上新项目使用的主要数据库为 MongoDB,那么正好系统的了解学习一下。

简介

MongoDB 是一款为 Web 应用程序和互联网基础设施设计的数据库管理系统。MongoDB 的数据模型和持久化策略的设计目标是提供高读写吞吐量,在易于伸缩同时还能进行自动故障转移。

MongoDB 的主要特性:

文档数据模型 即时查询(无需预先定义系统接受的查询类型) 二级索引(B树) 备份复制 速度与持久性 数据库扩展

MongoDB 与其他主流数据库的对比(图片来自《MongoDB 实战》)


初识 MongoDB
使用场景

对于任何软件来说,它的使用场景往往才是技术选型时最为关注的,而 MongoDB 由于其具备的特性,适用的场景很多:

Web 应用程序 敏捷开发 分析和日志 缓存 可变的Schema 安装

先创建数据目录

$ sudo mkdir -p /data/db $ sudo chown `id -u` /data/db

还是老样子以 Mac 为例安装,简单的不行:

$ brew install mongodb

然后全程自动化,然后就安好了。最后对 /usr/local/etc/mongod.conf 文件进行编辑,注释掉原默认信息,并添加如下配置:

dbpath=/data/db logpath=/usr/local/var/log/mongodb/mongo.log rest=true fork=true port=27017

这样就安装完成了,其中 MongoDB 即可。

$ mongod -f /usr/local/etc/mongod.conf 基本的 CRUD 操作

MongoDB 也提供了一个类似于 mysql Client 一样的 Shell,不过是一个 javascript Shell,只要对于 JS 基本语法了解使用起来很容易。

切换数据库命令和 MySQL 完全一致:

> use tutorial

注:MongoDB 数据库和集合不需要显示创建,均都是在第一次插入文档时才会被创建。

插入操作 > db.users.insert({"username": "BPCoder"}) // 插入一条文档 > db.users.save({"username": "Yang"}) // 如果 _id 存在为更新,如果 _id 不存在为插入 删除操作 > db.users.remove({"username": "Yang"}) // 根据条件删除 > db.users.drop() // 删除集合以及它的全部索引 查询操作 > db.users.find() // 查询全部 > db.users.count() // 查询总条数 > db.users.find({"username": "Yang"}) // 根据条件查询 > db.users.find({"favorites.citys": "Shenyang"}) // 复杂结构匹配查询 > db.numbers.find({"num": {"$gt": 20, "$lt": 26}}) // 条件查询方式($lt 小于 & $gt 大于) 更新操作 > db.users.update({"username": "Yang"}, {$set: {"country": "China"}}, false, true) // 添加一个新的 country 属性(最后一个参数开启多项更新) > db.users.update({"username": "Yang"}, {$unset: {"country": 1}}) // 删除一个 country 属性 > db.users.update({"username": "BPCoder"}, {$set: {"favorites": {"citys": ["Shenyang", "Dalian"], "movies": ["嫌疑人 X 的献身"]}}}) // 复杂结构 > db.users.update({"username": "BPCoder"}, {$push: {"favorites.citys": "Tianjing"}}) // 单独添加一个元素(不保证唯一性) > db.users.update({"username": "BPCoder"}, {$addToSet: {"favorites.citys": "Tianjing"}}) // 单独添加一个元素(保证唯一性) 设置索引 > db.numbers.ensureIndex({"num": 1}) 获取该集合已经设置索引信息 > db.numbers.getIndexes() 基本管理命令 > show dbs // 获取数据库信息 > db.stats() // 获取数据库或者集合更底层的信息 (db.users.stats()) 总结

简单整理对于 MongoDB 的安装及基本操作,后续会在深入了解后补充博客,那就到这了。。。


Viewing all articles
Browse latest Browse all 6262

Latest Images

Trending Articles