【MongoDB详细使用教程】二、MongoDB基本操作
【MongoDB详细使用教程】一、Mac安装MongoDB
【MongoDB详细使用教程】二、MongoDB基本操作
【MongoDB详细使用教程】三、高级查询
【MongoDB详细使用教程】四、python操作MongoDB
【MongoDB详细使用教程】五、MongoDB的数据库管理
1、数据类型
| MongoDB常见类型 | 说明 |
|---|---|
| Object ID | 文档ID |
| String | 字符串,最常用,必须是有效的UTF-8 |
| Boolean | 存储一个布尔值,true或false |
| Integer | 整数可以是32位或64位,这取决于服务器 |
| Double | 存储浮点值 |
| Arrays | 数组(js)或列表(python),多个值存储到一个键 |
| Object | 用于嵌入式的文档,即一个值为一个文档 |
| Null | 存储Null值 |
| Timestamp | 时间戳 |
| Date | 存储当前日期或时间的UNIX时间格式 |
2、数据库操作
| 命令 | 操作 |
|---|---|
| show dbs | 显示数据库列表 |
| db | 显示当前数据库 |
| use 数据库名 | 切换或创建数据(有则切换,无则创建) |
| db.dropDatabase() | 删除当前所在数据库(D大写) |
注:
- 使用"show dbs"时,不显示空的数据库
> use mymongo
switched to db mymongo
> db
mymongo
> show dbs # 创建后使用show dbs不会显示刚创建的数据库
admin 0.000GB
config 0.000GB
local 0.000GB
> db
mymongo
> db.mytest.insert({"name":"chen"})
WriteResult({ "nInserted" : 1 })
> show dbs
admin 0.000GB
config 0.000GB
local 0.000GB
mymongo 0.000GB # 插入一条数据后,就可以在show dbs中显示出来了
- 删除数据库前要切换到要删除的数据库,删除之后数据库内内容被清空,使用"show dbs"不显示,但是使用"db"命令的时候还会看到。
> show dbs
admin 0.000GB
config 0.000GB
local 0.000GB
mymongo 0.000GB
> db.dropDatabase()
{ "dropped" : "mymongo", "ok" : 1 }
> show dbs
admin 0.000GB
config 0.000GB
local 0.000GB
3、集合操作
关系型数据库中,每个库是由多张table组成,
而NoSQL中,每个库是由多个集合(collection)组成,相当于sql中的table,集合中以键值对(json、python.dict)的形式保存数据。
| 命令 | 操作 |
|---|---|
| db.createCollection(集合名, [参数]) | 创建集合(一般不用这种方式而是在插入数据时自动创建) |
| show collections/show tables | 查看集合 |
| db.集合名.drop() | 删除集合 |
> db.createCollection("colletiontest")
{ "ok" : 1 }
> show collections
colletiontest
mytest
> db.colletiontest.drop()
true
> show collections
mytest
4、数据操作
也叫文档操作
4.1、增
db.集合名.insert({"键名1":值1, "键名2": 值2 ...})
> db.students.insert({"name":"chen","age":"18", "grade":"一年级"})
WriteResult({ "nInserted" : 1 })
> db.students.insert({"name":"wang","age":"19", "grade":"二年级"})
WriteResult({ "nInserted" : 1 })
> db.students.insert({"name":"xu","age":20, "grade":"三年级"})
WriteResult({ "nInserted" : 1 })
一条insert语句只能插入一行数据,insert后面不能跟多行数据。
4.2、查
db.集合名.findOne() # 查询一行
db.集合名.find() # 查询全部
db.集合名.find().pretty() # 格式化打印
db.集合名.find({查找条件}) # 按条件查找
> db.students.findOne()
{
"_id" : ObjectId("5db63d020f98841018f7695f"),
"name" : "chen",
"age" : "18",
"grade" : "一年级"
}
> db.students.find()
{ "_id" : ObjectId("5db642b30f98841018f76965"), "name" : "chen", "age" : "18", "grade" : "一年级" }
{ "_id" : ObjectId("5db642bc0f98841018f76966"), "name" : "wang", "age" : "19", "grade" : "二年级" }
{ "_id" : ObjectId("5db653920f98841018f7696b"), "name" : "xu", "age" : 20, "grade" : "三年级" }
> db.students.find().pretty()
{
"_id" : ObjectId("5db642b30f98841018f76965"),
"name" : "chen",
"age" : "18",
"grade" : "一年级"
}
{
"_id" : ObjectId("5db642bc0f98841018f76966"),
"name" : "wang",
"age" : "19",
"grade" : "二年级"
}
{
"_id" : ObjectId("5db653920f98841018f7696b"),
"name" : "xu",
"age" : 20,
"grade" : "三年级"
}
> db.students.find()
{ "_id" : ObjectId("5db642b30f98841018f76965"), "name" : "chen", "age" : "18", "grade" : "一年级" }
{ "_id" : ObjectId("5db642bc0f98841018f76966"), "name" : "wang", "age" : "19", "grade" : "二年级" }
{ "_id" : ObjectId("5db653920f98841018f7696b"), "name" : "xu", "age" : 20, "grade" : "三年级" }
{ "_id" : ObjectId("5db654660f98841018f7696c"), "name" : "ma", "age" : 20, "grade" : "二年级" }
> db.students.find({"age":20})
{ "_id" : ObjectId("5db653920f98841018f7696b"), "name" : "xu", "age" : 20, "grade" : "三年级" }
{ "_id" : ObjectId("5db654660f98841018f7696c"), "name" : "ma", "age" : 20, "grade" : "二年级" }
"_id"是mongoDB自动添加的主键.
十六进制,每两个字符为一个字节,共12个字节
- 前4个字节为当前时间戳
- 接下来3个字节为机器ID
- 再接下来2个是MongoDB的进程ID
- 最后是排序流水号
4.3、改
4.3.1、修改整行
db.集合名.update({查询条件}, {修改后结果})

这里要注意,修改后结果就是整行的最终结果,并且只会修改一行,而不是所有匹配结果都修改。
可以通过多个字段查找

4.3.2、修改指定字段的值
db.students.update({查找条件}, {$set:{"要修改的字段名1":修改后的值, "要修改的字段名2": "值2"}})

同时修改了连个字段的值,但同样只会修改一条记录
4.4、删
db.集合名.remove({查询条件})
db.集合名.remove({}) # 删除全部数据

会删除所有的匹配项
【MongoDB详细使用教程】二、MongoDB基本操作的更多相关文章
- 【MongoDB详细使用教程】四、python操作MongoDB
目录 1.安装pymongo 2.连接数据库 3.操作数据库 3.1.查 3.2.增 3.3.改 3.4.删 使用第三方库pymongo来实现python对MongoDB的操作 pymongo官方文档 ...
- 【MongoDB详细使用教程】五、MongoDB的数据库管理
目录 1.数据库安全 1.1.创建管理员账号和密码 1.2.设置服务状态为需要验证用户 1.3.创建用户账户和密码 1.4.忘记密码/修改密码 2.主从服务器 2.1.创建服务器目录,用于分别存放主从 ...
- 【MongoDB详细使用教程】三、高级查询
目录 1.使用比较运算符查询 2.使用关键字查询 2.1.in/not in 关键字 2.2.size 关键字 2.3.exists 关键字 2.4.or 关键字 3.模糊查询 4.查询结果排序 5. ...
- WindowsServer2012 R2 64位中文标准版(IIS8.5)下手动搭建PHP环境详细图文教程(二)安装IIS8.5
//来源:http://www.imaoye.com/Technology/WindowsServer2012R264IIS85.html 阿里云服务器ECS Windows Server 2012 ...
- Windows 2016 无域故障转移群集部署方法 超详细图文教程 (二)
上一章我们配置了一台设备,接着根据那个配置,配置其它设备.这里我配置了三台设备: 创建故障转移群集,并添加设备. 之前的操作都是每台服务器都要做的,而这个操作,只需要任选一台去做即可,我这里选d1 1 ...
- MongoDb 快速入门教程
文章首发于[博客园-陈树义],点击跳转到原文MongoDb 快速入门教程. MongoDb 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的. 它是可扩展的 ...
- 在虚拟机中安装红旗桌面7.0 Linux操作系统的详细图文教程
本文作者:souvc 本文出处:http://www.cnblogs.com/liuhongfeng/p/5343087.html 以下是详细的内容: 一.安装虚拟机. 安装虚拟机可以参考:在Wind ...
- CRL快速开发框架系列教程十二(MongoDB支持)
本系列目录 CRL快速开发框架系列教程一(Code First数据表不需再关心) CRL快速开发框架系列教程二(基于Lambda表达式查询) CRL快速开发框架系列教程三(更新数据) CRL快速开发框 ...
- mongodb入门教程二
title: mongodb入门教程二 date: 2016-04-07 10:33:02 tags: --- 上一篇文章说了mongodb最基本的东西,这边博文就在深入一点,说一下mongo的一些高 ...
随机推荐
- .NET分布式大规模计算利器-Orleans(一)
写在前面 Orleans是基于Actor模型思想的.NET领域的框架,它提供了一种直接而简单的方法来构建分布式大规模计算应用程序,而无需学习和应用复杂的并发或其他扩展模式.我在2015年下半年开始 ...
- [Leetcode][动态规划] 第935题 骑士拨号器
一.题目描述 国际象棋中的骑士可以按下图所示进行移动: 我们将 “骑士” 放在电话拨号盘的任意数字键(如上图所示)上,接下来,骑士将会跳 N-1 步 ...
- 【linux】【jenkins】自动化运维五 整合邮件提醒
1.安装插件 Email Extension Template Plugin 安装教程参考:https://www.cnblogs.com/jxd283465/p/11542680.html 2.系统 ...
- Flutter学习笔记(27)--数据共享(InheritedWidget)
如需转载,请注明出处:Flutter学习笔记(27)--数据共享(InheritedWidget) InheritedWidget是Flutter中非常重要的一个功能型组件,它提供了一种数据在widg ...
- java数据结构——队列、循环队列(Queue)
每天进步一点点,坚持就是成功. 1.队列 /** * 人无完人,如有bug,还请斧正 * 继续学习Java数据结构————队列(列队) * 队列和栈一样,都是使用数组,但是队列多了一个队头,队头访问数 ...
- 23种设计模式之责任链模式(Chain of Responsibility Pattern)
责任链模式(Chain of Responsibility Pattern)为请求创建了一个接收者对象的链.这种模式给予请求的类型,对请求的发送者和接收者进行解耦.这种类型的设计模式属于行为型模式. ...
- 项目管理知识点-结合Enovia项目管理模块
核心知识域:整体管理.范围管理.进度管理.成本管理.质量管理.信息安全管理 保障域:人力资源管理.合同管理.采购管理.风险管理.信息(文档)管理.配置管理.知识产权管理.法律法规标准规范管理.职业道德 ...
- 【SQL server基础】获取当前时间并固定格式
Select CONVERT(varchar(), GETDATE(), ): // Select CONVERT(varchar(), GETDATE(), ): Select CONVERT(va ...
- LINUX系统学习以及初学者系统下载
Linux系统常用命令大全 来源:服务器之家 [博客中所有文章如有不对的地方希望看官们指出,有问题也可以提出来相互交流,相互学习,感谢大家!] 初学者建议安装:sentOS Ubuntu系统下载连接h ...
- Python验证码
from PIL import Image, ImageDraw, ImageFont, ImageFilter import random # 随机字母: def rndChar(): return ...