一   安装

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. LeetCode GrayCode

    class Solution { public: vector<int> grayCode(int n) { vector<int> res; res.push_back(); ...

  2. 转 : Apache启动报错:could not bind to address [::]:443 解决办法

    转:Apache启动报错:could not bind to address [::]:443 解决办法 安装Apache服务器的时候,报如下错误: Installing the 'apache' s ...

  3. layui-open-上传文件

    <!--选择文件上传--> <script id="upload_file_dialog" type="text/html"> < ...

  4. MongoDB 投影

    mongodb 投影意思是只选择必要的数据而不是选择一个文件的数据的整个.例如一个文档有5个字段,只需要显示其中3个 find() 方法 在MongoDB中,当执行find()方法,那么它会显示一个文 ...

  5. 强化学习系列之:Deep Q Network (DQN)

    文章目录 [隐藏] 1. 强化学习和深度学习结合 2. Deep Q Network (DQN) 算法 3. 后续发展 3.1 Double DQN 3.2 Prioritized Replay 3. ...

  6. Cloudera Manager5安装总结遇到问题及解决办法 CDH 5.8 on CentOS 7

    问题导读:1.Cloudera Manager在线安装你认为有什么优点和缺点?2.Cloudera Manager安装过程中遇到,你认为该如何解决?3.在线安装addr.arpa domain nam ...

  7. python之路——网络基础

    你现在已经学会了写python代码,假如你写了两个python文件a.py和b.py,分别去运行,你就会发现,这两个python的文件分别运行的很好.但是如果这两个程序之间想要传递一个数据,你要怎么做 ...

  8. sqlserver-一次updlock和withnolock和with check option 的报错原因分析

    接口程序一直运行的很稳定,其中有一天进行了数据库的整改,导致程序不断报错, 报错信息如下 原因: 程序代码写入以下代码 select * from ViewName with(updlock) whe ...

  9. December 06th 2016 Week 50th Tuesday

    Behind every beautiful thing, there is some kind of pain. 美丽背后,必有努力. No pains, no gains. But it seem ...

  10. [DP]洛谷P1115最大子段和

    题目来源 https://www.luogu.org/problemnew/show/P1115 题目描述 给出一段序列,选出其中连续且非空的一段使得这段和最大. 输入输出格式 输入格式: 第一行是一 ...