浅尝辄止之MongoDB
1 简介
MongoDB是一个介于关系数据库和非关系数据库之间的产品,基于分布式文件存储的数据库,旨在为WEB应用提供可扩展的高性能数据存储
解决方案。MongoDB将数据存储为一个文档,数据结构由键值对组成。类似于JSON对象,字段值可以包含其他文档,数组及文档数组。
eg:
{
name: "lc",
age: 26,
status: "A",
groups: ["news","sports"]
}
对比MySql:
1.更高的写入负载
默认情况下,MongoDB更侧重高数据写入性能,而非事务安全,MongoDB很适合业务系统中有大量“低价值”数据的场景。但是应当避免在高
事务安全性的系统中使用MongoDB,除非能从架构设计上保证事务安全。
2.高可用性
MongoDB的复副集(Master-Slave)配置非常简洁方便,此外,MongoDB可以快速响应的处理单节点故障,自动、安全的完成故障转移。这
些特性使得MongoDB能在一个相对不稳定(如云主机)的环境中,保持高可用性。
3.便于数据扩展
在一些传统RDBMS中,增加一个字段会锁住整个数据库/表,或者在执行一个重负载的请求时会明显造成其它请求的性能降级。通常发生在
数据表大于1G的时候(当大于1TB时更甚)。 因MongoDB是文档型数据库,为非结构货的文档增加一个新字段是很快速的操作,并且不会
影响到已有数据。另外一个好处当业务数据发生变化时,是将不在需要由DBA修改表结构。
4.基于位置的数据查询
MongoDB支持二维空间索引,因此可以快速及精确的从指定位置获取数据。
2 安装
略,参照最新MongoDB教程安装指南即可。
3 体验
切换数据库——
> use tutorial
创建待插入数据——
> post={"title":"My Blog Post",
... "content":"Here's my blog post",
... "date":new Date()}
创建数据结果——
{
"title" : "My Blog Post",
"content" : "Here's my blog post",
"date" : ISODate("2018-10-18T06:02:27.030Z")
}
插入数据——
> db.blog.insert(post)
插入数据结果——
WriteResult({ "nInserted" : 1 })
查询数据——
> db.blog.find()
查询结果——
{ "_id" : ObjectId("5bc821fd20fe9678fbf036a0"), "title" : "My Blog Post", "content" : "Here's my blog post", "date" : ISODate("2018-10-18T06:02:27.030Z") }
按条件查询——
> db.blog.findOne({"title":"My Blog Post"})
按条件查询结果——
{
"_id" : ObjectId("5bc821fd20fe9678fbf036a0"),
"title" : "My Blog Post",
"content" : "Here's my blog post",
"date" : ISODate("2018-10-18T06:02:27.030Z")
}
更新数据——
> post.comment=[]
> db.blog.update({title:"My Blog Post"},post}
> db.blog.find()
更新结果——
{ "_id" : ObjectId("5bc821fd20fe9678fbf036a0"), "title" : "My Blog Post", "content" : "Here's my blog post", "date" : ISODate("2018-10-18T06:02:27.030Z"), "comment" : [ ] }
删除——
> db.blog.remove({title:"My Blog Post"})
删除查询——
db.blog.find()
查询结果为空——
End
浅尝辄止之MongoDB的更多相关文章
- 你以为的MongoDB副本集的高可用是真的高可用了吗?
很久没来更新博客,自感是一个只会搬砖的劳工,总搞些MySQL相关的数据库实在无聊,且时不时遇到些不讲道理的Dev吧,真的是心累至极,有种想回头我也去干开发的冲动,当个需求者有话语权要风得风,要雨得雨多 ...
- MongoDB使用初步
我很快就要离开现在这个使用nodejs + mongodb + redis的项目,转而去搞 塞特ID 之类的别的项目了.可惜这些技术对我来说浅尝辄止,半生不熟,胎死腹中.业余时间自学当然也可以,但哪有 ...
- 【翻译】MongoDB指南/聚合——聚合管道
[原文地址]https://docs.mongodb.com/manual/ 聚合 聚合操作处理数据记录并返回计算后的结果.聚合操作将多个文档分组,并能对已分组的数据执行一系列操作而返回单一结果.Mo ...
- 【翻译】MongoDB指南/CRUD操作(四)
[原文地址]https://docs.mongodb.com/manual/ CRUD操作(四) 1 查询方案(Query Plans) MongoDB 查询优化程序处理查询并且针对给定可利用的索引选 ...
- 【翻译】MongoDB指南/CRUD操作(三)
[原文地址]https://docs.mongodb.com/manual/ CRUD操作(三) 主要内容: 原子性和事务(Atomicity and Transactions),读隔离.一致性和新近 ...
- 【翻译】MongoDB指南/CRUD操作(二)
[原文地址]https://docs.mongodb.com/manual/ MongoDB CRUD操作(二) 主要内容: 更新文档,删除文档,批量写操作,SQL与MongoDB映射图,读隔离(读关 ...
- 【翻译】MongoDB指南/CRUD操作(一)
[原文地址]https://docs.mongodb.com/manual/ MongoDB CRUD操作(一) 主要内容:CRUD操作简介,插入文档,查询文档. CRUD操作包括创建.读取.更新和删 ...
- CRL快速开发框架系列教程十二(MongoDB支持)
本系列目录 CRL快速开发框架系列教程一(Code First数据表不需再关心) CRL快速开发框架系列教程二(基于Lambda表达式查询) CRL快速开发框架系列教程三(更新数据) CRL快速开发框 ...
- MongoDB系列(二):C#应用
前言 上一篇文章<MongoDB系列(一):简介及安装>已经介绍了MongoDB以及其在window环境下的安装,这篇文章主要讲讲如何用C#来与MongoDB进行通讯.再次强调一下,我使用 ...
随机推荐
- background 和渐变 总结
一,background-position:(图片定位) 三种写法: 1):按%比,左上角最小(0%,0%),右下角最大(100%,%100): 2):(x,y)左上角最小(0,0),右下角最大(ma ...
- 5C - A == B ?
Give you two numbers A and B, if A is equal to B, you should print "YES", or print "N ...
- POJ3417 Network
一道LCA+树上差分 原题链接 显然每一条新增边都会导致环. 如果试着举些例子的话,很容易发现割掉非环上的边,则割掉其他任意一条新增边都可达成目标:若割掉的原有边是一个环上的边,那么只有割掉导致这个环 ...
- GET与POST传递数据的长度分析
在客户机和服务器之间进行请求-响应时,两种最常被用到的方法是:GET 和 POST.GET - 从指定的资源请求数据,POST - 向指定的资源提交要被处理的数据.本篇文章我们就来分析一下GET与PO ...
- P1083龙舟比赛
题目如下: 现在正在举行龙舟比赛,我们现在获得了最后冲刺时的俯视图像,现在你要输出各条龙舟的名次. 这张图像由r行c列的字符组成,每行的最左边的字符表示起点,所以字符为'S',最右边的字符为'F'.并 ...
- 担心后端代码泄露?用delphi做后端,模板扣出来,随时可以变化。
担心后端代码泄露?用delphi做后端,模板扣出来,随时可以变化. 本项目不是intraweb, unigui等类似的拖拉项目,只是一个简单 的模板引擎,理论上可以结合任何后端. 要就下载源码,作者保 ...
- 会调色了不起吗? SORRY,会调色真的了不起!
其实,现实的世界,大部分都是非常普通和常见的.所以调色师才有他们发挥的空间.如何把镜头中的世界变成梦幻一般. 把画面的颜色统一之后,逼格马上提升了很多! 发现表情不对,从其他照片把表情P回来,哈哈 这 ...
- 部署描述符(web.xml)和标注(annotation)
部署描述符(web.xml) 详细信息可在http://www.oracle.com/webfolder/technetwork/jsc/xml/ns/javaee/index.html上下载web- ...
- linux(centOS7,mini),python环境的搭建
今天想试一试python在linux下的工作,在vmware中安装了centOS7版本的linux,先前装过一个带GUI的,但是感觉在虚拟机理跑的太慢,干脆直接装一个最精简的mini版,试一下ifco ...
- Continuous Subarray Sum LT523
Given a list of non-negative numbers and a target integer k, write a function to check if the array ...