深入了解MongoDB
一、介绍:
数据库分为关系型数据库和非关系型数据库
关系型数据库是建立在关系模型上的数据库,主要的有Oracle MySQL Microsoft SQL Server
NoSQL是非关系型数据存储的广义定义 有:MongoDB
MongoDB:中每个数据包包含一个或者多个集合,集合是以BSON数据结构组织起来的文档对象集合,这个数据库可以处理大量数据,也可以欲行在便宜的PC服务器集群上,里面的数据结构非常简单,存储不需要固定的表结构,易于存储对象类型的数据,因此不需要进行表与表之间的关联查询。
使用场合:网站数据 用于对像及JSON数据的存储
二、安装:
http://www.cnblogs.com/GainLoss/p/6906937.html
三、mongoDB数据类型:
mongoDB的文档使用BSON来组织数据,BSON类似于JSON, JSON只是一种简单的表示数据的方式,只包含了6中数据类型
1.null: 用于表示空值或不存在的字段
2.布尔类型: true false
3.32为整数: mongodb的控制台使用js引擎进行输入,而js仅支持64位浮点数,所以32位整数会被自动转义
4.64位整数: 和32位整数一样
5.64位浮点数: 数字的默认类型
6.字符串
7.符号:不支持这种类型,会被自动转义
8.ObecjtId类型:对象id是文档中唯一的12位的ID
9.日期:日期类型存储是从标准纪年的毫秒数,不存储时区 使用的时候加上new {'one':new Date()}
10.正则表达式 文档键值可以包含表达式{‘one’:/ho/i}
11.代码
12.数据:可以表示位数据,在数组中还可以嵌套数组
13.内嵌文档; {'x':{'name':"time","age":"12"}}
14._id和ObjectId对象:mongodb文档默认必须有一个_id 这个键的值可以是任何类型 也可以自定义 默认位ObjectId对象
四、文档查询
1.基本操作
查找:
db.person.find()查看集合person中的数据
2.返回指定的键:
指定返回name的值:db.person.find({},{"name":1})
3.条件查询:
大于$gt 小于$lt 大于等于$gte 小于等于$lte 如果有多个条件:db.person.find({"field":{"$gt":value,"$lt":value}})
4.$all匹配所有 必须满足[]内所有的值
db.person.find({"name":{"$all":["value","hourse"]}})
5.$exists判断字段是否存在
db.person.find({"field":{$exists:true}}) field代表需要判断的字段的名称
6.$count查询记录的总条数
db.person.find().count() 总的数量
7.limit返回记录数
db.person.find().limit(N) 这个就用于限制一页显示多少个数据
8.skip限制返回记录的起点
db.person.find().skip(n) 就是分页的时候从第几条开始
9.sort排序
1表示升序 -1表示降序 db.person.find().sort("age":1)
添加:
db.person.insert({"name":"123"}) 在集合person中添加一条name=123的记录
删除:
db.person.remove({'name':'123'}) 删除name是123的记录
修改:
db.person.update({"_id":"1","name":"234"}) 修改_id=1的这条记录的name改成234
db.person.save({"name":123}) 文档不存在就进行插入 存在进行更新
深入了解MongoDB的更多相关文章
- 【翻译】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进行通讯.再次强调一下,我使用 ...
- MongoDB系列(一):简介及安装
什么是MongoDB MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统. 在高负载的情况下,添加更多的节点,可以保证服务器性能. MongoDB 旨在为应用提供可扩展的高 ...
- [原]分享一下我和MongoDB与Redis那些事
缘起:来自于我在近期一个项目上遇到的问题,在Segmentfault上发表了提问 知识背景: 对不是很熟悉MongoDB和Redis的同学做一下介绍. 1.MongoDB数组查询:MongoDB自带L ...
- 用MongoDB分析合肥餐饮业
看了<从数据角度解析福州美食>后难免心痒,动了要分析合肥餐饮业的念头,因此特地写了Node.js爬虫爬取了合肥的大众点评数据.分析数据库我并没有采用MySQL而是用的MongoDB,是因为 ...
随机推荐
- Windows 常见DOS命令
1. 查看网络连接及路由状况 netstat -a 查看开启了哪些端口,常用netstat -an netstat -n 查看端口的网 ...
- 复制虚拟机出现”适配器 的mac地址在保留地址范围内‘’
首先我的虚拟机是复制出来的,选择我已经移到,但是结果会出现了以下情况,导致了我无法ping 通,先看下提示: 使用:ipconfig –all 命令查寻,果然再现有打开的虚拟机中,存在两个mac地址相 ...
- java——删除链表中等于给定值的所有元素
class ListNode{ int val ; ListNode next; public ListNode(int x) { val = x; } public ListNode(int[] a ...
- leetcode 437. 路径总和 III
题目描述: 给定一个二叉树,它的每个结点都存放着一个整数值. 找出路径和等于给定数值的路径总数. 路径不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点). 二 ...
- JS Date 时间格式化
Date2Str(x, y) { , d: x.getDate(), h: x.getHours(), m: x.getMinutes(), s: x.getSeconds() }; y = y.re ...
- 多线程读写shared_ptrshared_ptr要加锁分析!学习笔记
(shared_ptr)的引用计数本身是安全且无锁的,但对象的读写则不是,“因为 shared_ptr 有两个数据成员,读写操作不能原子化".使得多线程读写同一个 shared_ptr 对 ...
- python_文件 处理
一.字符编码 内存固定使用unicode编码 数据最先产生于内存中,是unicode格式,要想传输需要转成bytes格式 # unicode -------> enconde( u t f - ...
- 往mysql数据库中上传路径问题
String path = System.getProperty("catalina.home"); String fileName = mo ...
- 树形dp学习
学习博客:https://www.cnblogs.com/qq936584671/p/10274268.html 树的性质:n个点,n-1条边,任意两个点之间只存在一条路径,可以人为设置根节点,对于任 ...
- Unity3D跨平台动态库编译---记kcp基于CMake的各平台构建实践
一 为什么需要动态库 1)提供原生代码(native code)的支持,也叫原生插件,但是我实践的是c/cpp跨平台动态库,这里不具体涉及安卓平台java库和ios平台的objectc库构建. 2)某 ...