mongodb4简明笔记
就一数据库,掌握基本用法,其他的现学现卖就行了.
所以要把握基本套路.
创建数据库=>使用数据库=>创建集合=>使用集合=>创建文档=>使用文档
1.数据库
mongodb和mysql目前我发现了一个比较明显的区别是:
mysql要想使用一个数据库,必须先创建一个数据库,而mongodb是直到你真正想某个数据库写入才会生成这个数据库.
数据库基本操作无非那么几个:
创建数据库:
如上所述,不存在的,简单的:use dbname
查看数据库都那些:show dbs
删除数据库:
db.dropDatabase()
总结,操作数据库:[创建数据库]=>选择数据库(use)=>删除数据库(db.dropDatabase())
实验证明,如果没有use直接删库,不会删除任何数据库.
2.数据集合
创建:
db.createCollection(collectionName,createOption)
createOption是一个词典,里面可以有4个键值对:capped(固定大小的集合),autoIndexId(真假),size(集合最大值,字节为单位),max(最大文档值)
例如,创建一个autoIndexId,无固定大小,无各种最大值的集合:
db.createCollection("collection1",{autoIndexId:true})
查看当前数据库集合状态:
show collections
删除数据库集合:
db.collectionName.drop()
3.数据行(文档)
创建|插入:
db.collectionName.insert(document)
如果插入多个文档呢???
db.collectionName.insertMany([document1,document2,...,documentn])
这里面所谓的document,实际是Binary JSON,即BSON,你可以单纯的看成是JSON,或者是Python的字典.
例如,文档格式有个字段,name,age,gender,profession,addr,tel.插入一个这样的信息,则可以写:
db.stu.insert({"name":"ZhangSan","age":22,"gender":"shemale","profession":"chairmanOfSchool","addr":"HeiLongJiang","tel":17777777777"})
MongoDB到目前为止,除了插入文档是必要之外,创建各种库,集合都是可以省略的...
由于MongoDB相对宽松的规则,所以,还可以使用save去插入|更新一些信息,核心就是保存之前不存在的当然就是插入了,保存之前有的就是更新了.用法:
db.collectionName.save(document)
查看集合中的所有文档:
db.stu.find()
删除:
db.collectionName.remove(<query>,{justOne: <boolean>,writeConcern: <document>})
参数全部可选.
删除多个:
db.collectionName.deleteMany({ "name":"ZhangSan" })
更新:
db.collectionName.update(<query>,<update>,{upsert,multi,writeConcern})
其中,后三个都为可选.upsert==update insert.writeConcern(报错级别)
例如:
db.stu.update({"tel":17777777777"},{$set:{"tel":"1"}})
如果更改某一列(字段),
db.stu.update({"tel":17777777777"},{$set:{"tel":"1"}},{multi:true})
只更新第一条记录:
全部更新:
只添加第一条:
全部添加加进去:
全部更新:
只更新第一条记录:
查询:
db.collectionName.find(<query>,projection)
其中,projection是可以包含或排除的一些返回结果,所以,例如:
db.collectionName.find({"addr":HeliLongJiang"},{addr:true})
OR:
db.collectionName.find({$or:[{key1:value1},{key2:value2}]})
返回指定字段:
db.CollectionName.find({},{addr:true})
4.数据字段(列)
5.数据索引(下标)
6.数据主键(标识作用的字段)
mongodb4简明笔记的更多相关文章
- Git & Github 一页简明笔记
由于小组工程需要使用git&github的版本控制来协作,但我对其使用并不熟悉,特此写篇一页的笔记放在手边,备随时查阅. 相信这种一页的简明笔记,对大家也是有帮助的.我的笔记总结自廖雪峰的Gi ...
- sc7731 Android 5.1 LCD驱动简明笔记之三
此篇笔记基于sc7731 - android 5.1,对lcd的gralloc库做一个简明笔记. 第一部分 调用gralloc.sc8830.so所谓的Gralloc模块,它就是一个模块,一个操作ke ...
- sc7731 Android 5.1 LCD驱动简明笔记之二
此篇笔记基于sc7731 - android 5.1,对lcd的framebuffer做一个简明笔记. 一共分为两大部分:第一部分,关于LCD的硬件方面的:第二部分,关于lcd核心处理(framebu ...
- 【python】命令行神器 Click 简明笔记
全文拷贝自 命令行神器 Click 简明笔记 Click Click 是用 Python 写的一个第三方模块,用于快速创建命令行.我们知道,Python 内置了一个 Argparse 的标准库用于创建 ...
- HTTP2.0 简明笔记
前言 RFC2616发布以来,一直是互联网发展的基石.HTTP协议也成为了可以在任何领域使用的核心协议,基于这个协议人们设计和部署了越来越多的应用.HTTP的简单本质是其快速发展的关键,但随着越来越多 ...
- nginx rewrite重写规则简明笔记
nginx rewrite重写规则简明笔记 比方说http://newmiracle.cn/?p=888我要改成能这个访问http://newmiracle.cn/p888/ 首先用正则获取888 ^ ...
- 35-less 简明笔记
分屏显示文本文件 less [options] [file-list] less与more类似,但比more更加完善 例如:在显示一屏文本之后,less将显示提示副等待下一条命令的输入;可以向前或向后 ...
- 异步任务神器 Celery 简明笔记
转自:http://www.jianshu.com/p/1840035cb510 异步任务 异步任务是web开发中一个很常见的方法.对于一些耗时耗资源的操作,往往从主应用中隔离,通过异步的方式执行.简 ...
- Git & Github 一页简明笔记(转)main
由于小组工程需要使用git&github的版本控制来协作,但我对其使用并不熟悉,特此写篇一页的笔记放在手边,备随时查阅. 使用方法:常用命令供随时查阅,其余内容供新手了解. 0. 常用命令一览 ...
随机推荐
- Java Activiti 流程审批 后台框架源码 springmvc SSM 工作流引擎
即时通讯:支持好友,群组,发图片.文件,消息声音提醒,离线消息,保留聊天记录 工作流模块-------------------------------------------------------- ...
- Java中的IO流(六)
上一篇<Java中的IO流(五)>把流中的打印流PrintStream,PrintWriter,序列流SequenceInputStream以及结合之前所记录的知识点完成了文件的切割与文件 ...
- 梯度下降法&牛顿法
梯度下降法 在机器学习任务中,需要最小化损失函数\(L(\theta)\),其中\(\theta\)是要求解的模型参数.梯度下降法是一种迭代方法,用到损失函数的一阶泰勒展开.选取初值\(\theta ...
- #leetcode刷题之路25- k个一组翻转链表
给出一个链表,每 k 个节点一组进行翻转,并返回翻转后的链表.k 是一个正整数,它的值小于或等于链表的长度.如果节点总数不是 k 的整数倍,那么将最后剩余节点保持原有顺序. 示例 :给定这个链表:1- ...
- 在javascript中什么是伪数组,如何将伪数组转化为标准数组?
这里把符合以下条件的对象称为伪数组: 1.具有length属性 2.按索引方式存储数据 3.不具有数组的push.pop等方法 伪数组(类数组):无法直接调用数组方法或期望length属性有什么特殊的 ...
- 笔记:javascript操作iframe内的DOM元素,及调用iframe内的方法
iframe相当于一个嵌入在网页内的浏览器,它与当前网页是隔离的. 但有时我们也需要在当前网页操作iframe内的元素或操作iframe内的javascript方法. 在网页内操作DOM元素,是使用d ...
- html-表单标签
表单标签 * 可以提交数据到**网站上的服务器,这个过程可以使用表单标签实现 * <form></form>:定义一个表单的范围 - 属性 ** action:提交到地址,默认 ...
- python学习——简介和入门
一.Python简介: Python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为AB ...
- C语言下的错误处理问题
今天来分享我认为比较好的几种在C语言下的错误处理方式 方式一: int example(int num) { ) { ; } ; } 在不符合条件的情况下使用return终止程序 方式二: void ...
- js判断两个日期是否相等的方法
今天优化代码的时候,发现一个问题,js比较日期是否相等时,我用==去比较,发现两个时间不相等但是运行结果却是true,然后去百度了下发现oldStartTime, startTime都是对象,类型为引 ...