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的更多相关文章

  1. 你以为的MongoDB副本集的高可用是真的高可用了吗?

    很久没来更新博客,自感是一个只会搬砖的劳工,总搞些MySQL相关的数据库实在无聊,且时不时遇到些不讲道理的Dev吧,真的是心累至极,有种想回头我也去干开发的冲动,当个需求者有话语权要风得风,要雨得雨多 ...

  2. MongoDB使用初步

    我很快就要离开现在这个使用nodejs + mongodb + redis的项目,转而去搞 塞特ID 之类的别的项目了.可惜这些技术对我来说浅尝辄止,半生不熟,胎死腹中.业余时间自学当然也可以,但哪有 ...

  3. 【翻译】MongoDB指南/聚合——聚合管道

    [原文地址]https://docs.mongodb.com/manual/ 聚合 聚合操作处理数据记录并返回计算后的结果.聚合操作将多个文档分组,并能对已分组的数据执行一系列操作而返回单一结果.Mo ...

  4. 【翻译】MongoDB指南/CRUD操作(四)

    [原文地址]https://docs.mongodb.com/manual/ CRUD操作(四) 1 查询方案(Query Plans) MongoDB 查询优化程序处理查询并且针对给定可利用的索引选 ...

  5. 【翻译】MongoDB指南/CRUD操作(三)

    [原文地址]https://docs.mongodb.com/manual/ CRUD操作(三) 主要内容: 原子性和事务(Atomicity and Transactions),读隔离.一致性和新近 ...

  6. 【翻译】MongoDB指南/CRUD操作(二)

    [原文地址]https://docs.mongodb.com/manual/ MongoDB CRUD操作(二) 主要内容: 更新文档,删除文档,批量写操作,SQL与MongoDB映射图,读隔离(读关 ...

  7. 【翻译】MongoDB指南/CRUD操作(一)

    [原文地址]https://docs.mongodb.com/manual/ MongoDB CRUD操作(一) 主要内容:CRUD操作简介,插入文档,查询文档. CRUD操作包括创建.读取.更新和删 ...

  8. CRL快速开发框架系列教程十二(MongoDB支持)

    本系列目录 CRL快速开发框架系列教程一(Code First数据表不需再关心) CRL快速开发框架系列教程二(基于Lambda表达式查询) CRL快速开发框架系列教程三(更新数据) CRL快速开发框 ...

  9. MongoDB系列(二):C#应用

    前言 上一篇文章<MongoDB系列(一):简介及安装>已经介绍了MongoDB以及其在window环境下的安装,这篇文章主要讲讲如何用C#来与MongoDB进行通讯.再次强调一下,我使用 ...

随机推荐

  1. poj 2492(关系并查集) 同性恋

    题目;http://poj.org/problem?id=2492 卧槽很前卫的题意啊,感觉节操都碎了, t组测试数据,然后n,m,n条虫子,然后m行,每行两个数代表a和b有性行为(默认既然能这样就代 ...

  2. Linux 中的文件锁

    参考资料: https://www.ibm.com/developerworks/cn/linux/l-cn-filelock/index.html

  3. apt install yum失败

    解决办法:sudo apt-get update

  4. Vuebnb 一个用 vue.js + Laravel 构建的全栈应用

    今年我一直在写一本新书叫全栈Vue网站开发:Vue.js,Vuex和Laravel.它会在Packt出版社在2018年初出版. 这本书是围绕着一个案例研究项目,Vuebnb,简单克隆Airbnb.在这 ...

  5. is not allowed to connect to this MySQL server解决办法

    GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION; myuser:代表你 ...

  6. ContactDetail 和 ContactEditor 界面头像响应点击过程

    1,联系人详情界面 ContactDetailFragment中处理,ViewAdapter装载数据显示头像 private final class ViewAdapter extends BaseA ...

  7. JS Async Callback

    AsyncCallback 意义: 异步操作完成时调用的方法 语法1: 构造异步回调对象 AsyncCallback 异步回调对象名asyncCallback = new AsyncCallback( ...

  8. 2017/2/16:自己ajax+json习惯性写法 代码拼接的写法 +json用post提交乱码的原因

    1.先导入jquery的包 2.ajax的写法跟注意点 返回一个list的写法 代码拼接写法: html层: 2.script处 4:在你前面传递参数的时候没有遇到乱码问题的情况下,你使用json并且 ...

  9. [C#.Net]对WinForm应用程序的App.config的使用及加密

    我们在写C#应用程序时,在工程文件中放置一个app.config,程序打包时,系统会将该配置文件自动编译为与程序集同名的.exe.config 文件.作用就是应用程序安装后,只需在安装目录中找到该文件 ...

  10. 关于SSH中tomcat下中文名称图片不显示的问题

    最近做一个SSH框架的项目,用tomcat发布,需要上传图片到指定路径,然后再将图片显示在页面上.有一个问题:如果是英文名称的图片,就正常显示,可如果是中文的,它就是显示不出来,于是乎,在网上各种百度 ...