MongoDB简易
一 安装
1.下载
$ brew install mongodb
2.启动
$ mongod --config /usr/local/etc/mongod.conf
3.连接
$ mongo
二 语法
show dbs 查看所有数据库
db.createCollection('col') 创建col集合
use DBNAME 创建并切换至某某数据库
db.dropDatabase() 删除当前数据库
db.collection.drop() 删除集合
show tables 查看所有集合
db.Collection_Name.insert(document) 插入文档
db.Collection_Name.find() 查看文档
db.Collection_Name.update(<query>,<update>,{upsert:false 是否插入不存在的数据,multi:false 只更新查到的第一个数据 writeConcern:抛出异常的级别}
db.collection.save(<document>,{writeConcern:级别} save() 方法通过传入的文档来替换已有的文档
db.collection.remove(<query>,{justOne:true 只删除一个文档}
db.collection.find().pretty() 查询集合中的数据
db.col.find({"likes":{$lt:50}}).pretty() 小于
db.col.find({"likes":{$lte:50}}).pretty() 小于等于
db.col.find({"likes":{$gt:50}}).pretty() 大于
db.col.find({"like":{$gte:50}}}.pretty() 大于等于
db.col.find({"likes":{$ne:50}}).pretty() 不等于
AND条件 db.col.find({key1:value1,key2:value2}).pretty()
OR条件 db.col.find({$or:[{key1:value1}, {key2:value2}]}).pretty()
AND OR 组合 db.col.find({"likes":{$gt:50},$or:[{"by":"菜鸟教程"},{"title":"MongoDB 教程"}]}).pretty()
db.col.find({"title":{$type:2}}) $type条件操作符 Double 1; String 2; Object 3;Array 4;Binary data 5; Undefined 6;Object id 7; Boolean 8; Date 9;Null 10; Regular Expression 11; Javascript 13; Symbol 14; Timestamp 17;
db.collection.find().limit(NUMBER) 读取指定数量的数据记录
db.col.find({},{"title":1,_id:0}).limit(1).skip(1) 跳过指定的条数,最先执行顺序 sort再skip再limit
db.col.find({},{"title":1,_id:0}).sort({"likes":-1}) 1正序;-1倒序
索引 ensureIndex()
db.COLLECTION_NAME.ensureIndex({KEY:1},option) 1为升序创建索引 -1为降序创建索引 option可选参数{background:false 防止创建索引会阻塞其他数据库操作,将其指定为true;.......}
db.col.ensureIndex({"title":1,"description":-1}) 可以设置多个索引
db.values.ensureIndex({open:1,close:1},{background:true})
聚合aggregate()方法用于处理数据,并返回计算后的结果
db.COLLECTION_NAME.aggregate(AGGREGATE_OPERATION)
db.mycol.aggregate([{$group:{_id:"$by_user",num_tutorial:{$sum:"$likes"}}}])
$sum 计算总和; $avg 计算平均值;$min 获取集合中所有文档对应的最小值; $max 最大值; $push 在结果文档中插入值 到 一个数组中;$addToSet 在结果文档中插入值到一个数组中,但不创建副本;$first 根据资源文档的排序获取第一个文档数据;$last 最后一个文档数据;
管道 将在一个管道处理完的结果 传递给下一个管道处理;表达式:处理输入文档并输出。表达式是无状态的,只能用于计算当前聚合管道的文档:
$project 修改输入文档的结构;$match 用于过滤数据;$limit 限制聚合管道返回的文档数;$skip 跳过指定文档的数量;$unwind 将文档中的某一个数组类型字段拆分成多条,每条包含数组中的一个值。$group:将集合中的文档分组,可用于统计结果;$sort:排序;$geoNear:输出接近某一地理位置的有序文档。
分片:存在的另一种集群,可以满足MongoDB数据量大量增长的需求。
备份:mongodump -h dbhost -d dbname -o dbdirectory
恢复数据:mongorestore -h <hostname><:port> -d dbname <path>
监控:/bin $mongostat
$mongotop
关系类型:嵌入式关系--保存在单一的文档中,比较容易获取和维护数据,但不断增大会影响读写性能。
引用式关系--把数据文档和用户文档分开,通过文档的ID字段来建立关系。{"name":"Tom Benzamin","address_ids":[ObjectId("52ffc4a5d85242602e000000"),ObjectId("52ffc4a5d85242602e000001")]}
使用DBRefs:一个文档冲多个集合中引用文档。{$ref:.集合名称. ,$id: ..引用ID..,$db:.数据库名称..}
原子操作:MongoDB提供了许多原子操作,比如文档的保存、修改、删除。(原子操作:要么这个文档保存到mongoDB,要么没有保存到MongoDB,不会出现查询到的文档没有保存完整的情况)
ObjectID 是一个12字节BSON类型数据,前4个字节表示时间戳,3个字节是机器标识码,2个是进程ID,最后3个字节是随机数
newObjectId = ObjectId()
new ObjectId().str
正则表达式post_text
db.posts.find({post_text:{$regex:"runoob"}}) 或db.posts.find({post_text:/runoob/}) 或 db.posts.find({post_text:{$regex:"runoob",$options:"$i"}})
MongoDB简易的更多相关文章
- springboot集成mongoDB简易使用
1.首先是添加Spring Data mongo的配置依赖 <dependency> <groupId>org.springframework.boot</groupId ...
- mongodb的安装和权限管理
mongodb4.0已经发布,但是鉴于线上环境更多的是使用旧版本的mongodb,我们这里使用的mongodb3.4版本. 官网下载地址为:https://fastdl.mongodb.org/lin ...
- Flask+mongodb 实现简易个人博客
最近学习完了<flask-web开发>,实现了一个简易的个人博客网站,由flask+mongodb+bootstrap做成, 这个软件是在阅读<Flask-Web开发>后写的一 ...
- Python中使用Flask、MongoDB搭建简易图片服务器
主要介绍了Python中使用Flask.MongoDB搭建简易图片服务器,本文是一个详细完整的教程,需要的朋友可以参考下 1.前期准备 通过 pip 或 easy_install 安装了 pymong ...
- mongodb入门级的视频教程-简易客户管理系统制作
本套教程作为mongodb入门级的视频教程,首先讲解了mongodb的下载.安装,环境变量的设置.启动mongodb和将mongodb安装成为windows服务.然后进一步讲解了mongodb里面集合 ...
- MongoDB 系列(一) C# 简易入门封装
之前写过一篇关于MongoDB的封装 发现太过繁琐 于是打算从新写一篇简易版 1:关于MongoDB的安装请自行百度,进行权限认证的时候有一个小坑,3.0之后授权认证方式默认的SCRAM-SHA-1模 ...
- 从无到有,用Nodejs+express+mongodb搭建简易登陆系统
前端处理server表示很蛋疼,初学Node,虽然感觉异常强大,但是学起来还是有些吃力的,Node是工具,它不是万能的,搭建一个系统还是需要借助其他一些工具,对于我这个没怎么接触server的前端来说 ...
- express + mongodb 搭建一个简易网站 (四)
express + mongodb 搭建一个简易网站 (四) 目前网站整体页面都已经能全部展示了,但是,整个网站还有两个块需要做完才能算完整,一个连接数据库,目前网站上的数据都是抓取的本地假数据,所以 ...
- express + mongodb 搭建一个简易网站 (三)
express + mongodb 搭建一个简易网站 (三) 前面已经实现了基本的网站功能,现在我们就开始开搞一个完整的网站,现在整个网站的UI就是下面的这个样子. 我们网站的样子就照着这个来吧. 1 ...
随机推荐
- csharp: datatable get Column datatype or Column Name
/// <summary> ///列表名 /// </summary> /// <param name="table"></param&g ...
- Django之ModelForm使用
一:什么是ModelForm呢? Model + Form ==> ModelForm.model和form的结合体,所以有以下功能: 数据验证 数据库操作 model有操作数据库的字段,for ...
- vuex入门教程和思考 [转] 里面有几个实例
Vuex基础概念 vuex中涉及的概念主要有下面几点,下面做个简单的介绍和理解. Vuex 官方文档:https://vuex.vuejs.org/zh-cn/ 官网有介绍,也有个demo shopp ...
- ORACLE数据仓库学习记录
一.数据仓库安装 安装ORACLE DATABASE 10g Release 2 ORACLE数据库版本是:10.2.0.1.0(服务器).执行基本安装(安装全部的组件)并创建示例数据库. 安装ORA ...
- Android的事件分发(dispatchTouchEvent),拦截(onInterceptTouchEvent)与处理(onTouchEvent)
在Android中,View的结构是树状的,所以,当触发触摸事件的时候,其事件传递也是从上之下一层层的传递.下面我们结合例子来一点点进行分析. 首先,我们需要了解事件处理中的几个方法: 1.在View ...
- 微信小程序-04-详解介绍.json 配置文件
致我自己:小程序开发不是简单一两天的事,一两天只能算是了解,有时候看多了会烦,感觉很熟悉了,其实只是对表面进行了解,对编程却知之甚少,小程序开发不是简单的改模板,一两天很多部分改模板可能都做不到,坚持 ...
- PowerDNS Authoritative Server 3.3 发布
PowerDNS Authoritative Server 3.3 发布,该版本改进了不同验证器的交互操作,修复了不少 bug. PowerDNS Authoritative Server (PDNS ...
- Linux /etc/fstab文件
一,作用 /etc/fstab是用来存放文件系统的静态信息的文件,当系统启动时,系统会自动地从这个文件读取信息,并且会自动将此文件中指定的文件系统挂在到执行的目录 二,挂载的限制 1,根目录是必须挂载 ...
- 如何提高Ajax性能
1.适当使用缓存机制 2.使用CDN内容分发来访问Jquery脚本: (1)自己公司架设CDN服务器 (2)使用第三方公司的,比如微软,谷歌等公司的CDN,但有时候不太靠谱 3.JS/CSS文件的打包 ...
- 按钮在执行frame动画的时候怎么响应触发事件?
按钮在执行frame动画的时候怎么响应触发事件? 代码中效果(请注意,我并没有点击到按钮,而是点击到按钮的终点frame值处): 对应的代码: // // ViewController.m // Ta ...