一   安装

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

  1. springboot集成mongoDB简易使用

    1.首先是添加Spring Data mongo的配置依赖 <dependency> <groupId>org.springframework.boot</groupId ...

  2. mongodb的安装和权限管理

    mongodb4.0已经发布,但是鉴于线上环境更多的是使用旧版本的mongodb,我们这里使用的mongodb3.4版本. 官网下载地址为:https://fastdl.mongodb.org/lin ...

  3. Flask+mongodb 实现简易个人博客

    最近学习完了<flask-web开发>,实现了一个简易的个人博客网站,由flask+mongodb+bootstrap做成, 这个软件是在阅读<Flask-Web开发>后写的一 ...

  4. Python中使用Flask、MongoDB搭建简易图片服务器

    主要介绍了Python中使用Flask.MongoDB搭建简易图片服务器,本文是一个详细完整的教程,需要的朋友可以参考下 1.前期准备 通过 pip 或 easy_install 安装了 pymong ...

  5. mongodb入门级的视频教程-简易客户管理系统制作

    本套教程作为mongodb入门级的视频教程,首先讲解了mongodb的下载.安装,环境变量的设置.启动mongodb和将mongodb安装成为windows服务.然后进一步讲解了mongodb里面集合 ...

  6. MongoDB 系列(一) C# 简易入门封装

    之前写过一篇关于MongoDB的封装 发现太过繁琐 于是打算从新写一篇简易版 1:关于MongoDB的安装请自行百度,进行权限认证的时候有一个小坑,3.0之后授权认证方式默认的SCRAM-SHA-1模 ...

  7. 从无到有,用Nodejs+express+mongodb搭建简易登陆系统

    前端处理server表示很蛋疼,初学Node,虽然感觉异常强大,但是学起来还是有些吃力的,Node是工具,它不是万能的,搭建一个系统还是需要借助其他一些工具,对于我这个没怎么接触server的前端来说 ...

  8. express + mongodb 搭建一个简易网站 (四)

    express + mongodb 搭建一个简易网站 (四) 目前网站整体页面都已经能全部展示了,但是,整个网站还有两个块需要做完才能算完整,一个连接数据库,目前网站上的数据都是抓取的本地假数据,所以 ...

  9. express + mongodb 搭建一个简易网站 (三)

    express + mongodb 搭建一个简易网站 (三) 前面已经实现了基本的网站功能,现在我们就开始开搞一个完整的网站,现在整个网站的UI就是下面的这个样子. 我们网站的样子就照着这个来吧. 1 ...

随机推荐

  1. [转]Shared——回调函数是什么

    本文内容转自知乎 作者:no.body 链接:https://www.zhihu.com/question/19801131/answer/27459821 回调函数(callback)是什么? 什么 ...

  2. js串结构

    朴素匹配算法 //S 主串 T 模式串 //匹配失败,回溯 i = i - j + 1 j = 0 //匹配成功,返回位置 i - j function indexOf(S,T,pos = 0){ l ...

  3. C#与.NET的区别和C#程序结构

    C#语言及其特点 (1)语法简洁,不允许直接操作做内存,去掉指针操作 (2)彻底的面向对象设计,C#具有面向对象所应用的一切特性:封装.继承.多态 (3)与Web紧密结合,C#支持绝大多数的Web标准 ...

  4. CF961F k-substrings

    题意 给定一个字符串 \(S\) 求所有的 \(S[i,n-i+1]\) 的 \(border\) 长度(最长的前缀等于后缀),要求长度是奇数 \(n\le 10^6\) Sol 首先发现每次求的串都 ...

  5. 理解webpack4.splitChunks之其余要点

    splitChunks除了之前文章提到的规则外,还有一些要点或是叫疑惑因为没有找到官方文档的明确说明,所以是通过我自己测试总结出来的,只代表我自己的测试结果,不一定正确. splitChunks.ca ...

  6. Java中的数据类型转换

    先来看一个题: Java类Demo中存在方法func0.func1.func2.func3和func4,请问该方法中,哪些是不合法的定义?( ) public class Demo{ float fu ...

  7. CentOS7运维管理笔记(12)----修改主机名

    CentOS修改主机名 CentOS7和CentOS6.5 修改主机名的方法略有不同. 通过 hostname 命令可以查看当前的主机名. 1. 临时修改主机名 通过 'hostname 新的主机名' ...

  8. 解决Spring框架下中文乱码的问题

    在使用了Spring框架下回发现很多表单交互的地方会发生乱码,而且写到数据库中也是乱码,这其实还是字符编码的问题,在我们还在用自己写的servlet的时候,直接在request和response加上字 ...

  9. C# 字符串中特定字符判断

    /// <summary> /// 计算字符串中子串出现的次数 /// </summary> /// <param name="str">字符串 ...

  10. SQL insert语句中插入带有特殊符号

    1.插入数据库字符串中海油单引号,需要转义处理,例如插入“I‘m OK!” SQL语句: INSERT INTO tableTest(FileTXT) VALUES('I''m OK!') 2.如果S ...