MongoDB基本操作总结
MongoDB语法总结:
插入操作:
单条插入
语法 : insertOne()
示例:
db.getCollection('MY_TEST').insertOne({"日期" : "20190915", "作者": "xmr", "目标" :"整理mongo语法"})
1
结果:
/* 1 */
{
"acknowledged" : true,
"insertedId" : ObjectId("5cdbdad464173957bc9e392a")
}
1
2
3
4
5
结果验证:
# 全表查询
db.getCollection('MY_TEST').find({})
{
"_id" : ObjectId("5cdbdad464173957bc9e392a"),
"日期" : "20190915",
"作者" : "xmr",
"目标" : "整理mongo语法"
}
1
2
3
4
5
6
7
8
9
批量插入 :
语法 : insertMany()
插入数据集 :
[{"姓名:" : "xmr", "性别" : "男", "住址" : "地球", "年龄" :"23", "收入" : "354", "爱好": "女", "职业" : "码畜"},
{"姓名:" : "xmr", "性别" : "男", "住址" : "地球", "年龄" :"23", "收入" : "354", "爱好": "女", "职业" : "码畜"},
{"姓名:" : "xmr", "性别" : "男", "住址" : "地球", "年龄" :"35", "收入" : "233", "爱好": "女", "职业" : "码畜", "学历" : "本科"},
{"姓名:" : "zyd", "性别" : "女", "住址" : "火星", "年龄" :"22", "收入" : "88888", "爱好":"吃", "职业" : "学生", "学历" : "硕士"},
{"姓名:" : "张子枫", "性别" : "女", "代表作品" : "你好,之华, 唐山大地震", "综艺" : "向往的生活第三季", "优势" : "美"},
{"动漫名" : "火影忍者", "女主": "日向雏田", "年龄": "24"}
]`
1
2
3
4
5
6
7
实例:
db.getCollection('MY_TEST').insertMany([{"姓名:" : "xmr", "性别" : "男", "住址" : "地球", "年龄" :"23", "收入" : "354", "爱好": "女", "职业" : "码畜"},
{"姓名:" : "xmr", "性别" : "男", "住址" : "地球", "年龄" :"23", "收入" : "354", "爱好": "女", "职业" : "码畜"},
{"姓名:" : "xmr", "性别" : "男", "住址" : "地球", "年龄" :"35", "收入" : "233", "爱好": "女", "职业" : "码畜", "学历" : "本科"},
{"姓名:" : "zyd", "性别" : "女", "住址" : "火星", "年龄" :"22", "收入" : "88888", "爱好":"吃", "职业" : "学生", "学历" : "硕士"},
{"姓名:" : "张子枫", "性别" : "女", "代表作品" : "你好,之华, 唐山大地震", "综艺" : "向往的生活第三季", "优势" : "美"},
{"动漫名" : "火影忍者", "女主": "日向雏田", "年龄": "24"}
])
1
2
3
4
5
6
7
运行结果 :
/* 1 */
{
"acknowledged" : true,
"insertedIds" : [
ObjectId("5cdbde9564173957bc9e392c"),
ObjectId("5cdbde9564173957bc9e392d"),
ObjectId("5cdbde9564173957bc9e392e"),
ObjectId("5cdbde9564173957bc9e392f"),
ObjectId("5cdbde9564173957bc9e3930"),
ObjectId("5cdbde9564173957bc9e3931")
]
}
1
2
3
4
5
6
7
8
9
10
11
12
注:_id读作Object id, 由时间,机器码,进程pid和自增计数器构成
之后的查询和删除都以刚刚添加的几条数据为基础进行操作
查询操作
全表扫描:
语法 : find({})
实例:
db.getCollection('MY_TEST').find({})
1
查询固定值数据 :
语法 : find({“字段值1”:“值1”, “字段值2”:“值2”})
实例1: 扫描表里面姓名是张子枫的数据
db.getCollection('MY_TEST').find({"姓名:" : "张子枫"})
1
结果1:
/* 1 */
{
"_id" : ObjectId("5cdbde9564173957bc9e3930"),
"姓名:" : "张子枫",
"性别" : "女",
"代表作品" : "你好,之华, 唐山大地震",
"综艺" : "向往的生活第三季",
"优势" : "美"
}
1
2
3
4
5
6
7
8
9
实例2 : 扫描表里面姓名是xmr, 学历为本科的数据
db.getCollection('MY_TEST').find({"姓名:" : "xmr", "学历" : "本科"})
1
结果2:
/* 1 */
{
"_id" : ObjectId("5cdbde9564173957bc9e392e"),
"姓名:" : "xmr",
"性别" : "男",
"住址" : "地球",
"年龄" : "35",
"收入" : "233",
"爱好" : "女",
"职业" : "码畜",
"学历" : "本科"
}
1
2
3
4
5
6
7
8
9
10
11
12
范围查询 :
操作符介绍 :
$gt 大于
$gte 大于等于
$lt 小于
$lte 小于等于
$ne 不等于
1
2
3
4
5
实例1 : 查询表里面年龄大于等于35岁的数据
db.getCollection('MY_TEST').find({"年龄" : {"$gte" : "35"}})
1
结果1:
/* 1 */
{
"_id" : ObjectId("5cdbde9564173957bc9e392e"),
"姓名:" : "xmr",
"性别" : "男",
"住址" : "地球",
"年龄" : "35",
"收入" : "233",
"爱好" : "女",
"职业" : "码畜",
"学历" : "本科"
}
1
2
3
4
5
6
7
8
9
10
11
12
实例2: 查询表里面年龄大于23且年龄小于等于35的结果.
db.getCollection('MY_TEST').find({"年龄" : {"$gt" : "23", "$lte" : "35"}})
1
结果2:
/* 1 */
{
"_id" : ObjectId("5cdbde9564173957bc9e3931"),
"动漫名" : "火影忍者",
"女主" : "日向雏田",
"年龄" : "24"
}
/* 2 */
{
"_id" : ObjectId("5cdbde9564173957bc9e392e"),
"姓名:" : "xmr",
"性别" : "男",
"住址" : "地球",
"年龄" : "35",
"收入" : "233",
"爱好" : "女",
"职业" : "码畜",
"学历" : "本科"
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
在上面的基础上继续添加条件 : (满足实例2并且动漫名为火影忍者的结果)
1
db.getCollection('MY_TEST').find({"年龄" : {"$gt" : "23", "$lte" : "35"}, "动漫名" : "火影忍者"})
1
结果:
/* 1 */
{
"_id" : ObjectId("5cdbde9564173957bc9e3931"),
"动漫名" : "火影忍者",
"女主" : "日向雏田",
"年龄" : "24"
}
1
2
3
4
5
6
7
返回或者剔除指定的字段:
1代表返回该字段
0代表剔除该字段
实例1 : 只返回年龄和姓名字段
db.getCollection('MY_TEST').find({}, {"年龄" : 1, "姓名" : 1})
1
结果1:
实例2 : 除了年龄和姓名字段,剩下全部显示 :
db.getCollection('MY_TEST').find({}, {"年龄" : 0, "姓名:" : 0})
1
结果2:
查询结果数目或者限制条数
查询结果数目语法 : count()
限制返回条数语法: limit(条数)
查询结果数目实例:
db.getCollection('MY_TEST').find({}).count();
1
结果: 8
限制返回记录实例: 返回两条结果:
db.getCollection('MY_TEST').find({}).limit(2)
1
结果:
/* 1 */
{
"_id" : ObjectId("5cdbdad464173957bc9e392a"),
"日期" : "20190915",
"作者" : "xmr",
"目标" : "整理mongo语法"
}
/* 2 */
{
"_id" : ObjectId("5cdbdbac64173957bc9e392b"),
"日期" : "20190915",
"作者" : "xmr",
"目标" : "整理mongo语法"
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
排序
语法 : sort(“字段名” : 1 or -1) 其中 :1表示正序, -1表示倒序
实例一: 将年龄大于23且年龄小于等于35的结果按照年龄逆序排列
db.getCollection('MY_TEST').find({"年龄" : {"$gt" : "23", "$lte" : "35"}}).sort({"年龄" :-1})
1
返回结果如下:
修改操作 :
语法 : updateOne() 修改单条数据
updateMany()修改多条数据
举例: 把表里面所有年龄小于23数据的姓名更改为日向雏田
db.getCollection('MY_TEST').updateMany({"年龄": {"$lte":"23"}}, {"$set": {"姓名:":"日向雏田"}})
1
执行结果:
/* 1 */
{
"acknowledged" : true,
"matchedCount" : 3.0,
"modifiedCount" : 3.0
}
```
从结果上面看,有三条记录被更改,查询表格查看修改结果:
```java
db.getCollection('MY_TEST').find({"年龄": {"$lte":"23"}})
1
2
3
4
5
6
7
8
9
10
11
可以看到: 年龄小于等于23结果的姓名全部被修改成为日向雏田
删除操作,谨慎使用!
语法 : deleteOne() 删除一条
deleteMany() 删除多条
实例1 : 删除表格里面年龄为35的第一条记录
db.getCollection('MY_TEST').deleteOne({"年龄":"35"})
1
删除之后执行命令 :
db.getCollection('MY_TEST').find({})
1
从结果中可以看到,原来年龄为35的一条记录被删除了:
实例2 : 删除表格里面作者为xmr的全部记录
db.getCollection('MY_TEST').deleteMany({"作者":"xmr"})
1
执行结果: 可以看到有两条记录被删除
/* 1 */
{
"acknowledged" : true,
"deletedCount" : 2.0
}
1
2
3
4
5
查询数据库 :
db.getCollection('MY_TEST').find()
1
可以看到 : 所有作者为xmr的数据全部被删除了
数据去重
语法: distinct()
实例1 :对年龄字段进行去重
db.getCollection('MY_TEST').distinct("年龄" )
1
结果1:
/* 1 */
[
"23",
"24",
"22"
]
1
2
3
4
5
6
实例2: 对年龄大于等于23的结果进行去重
db.getCollection('MY_TEST').distinct("年龄" ,{ "年龄" :{"$gte" : "23"}})
1
返回结果:
/* 1 */
[
"23",
"24"
]
1
2
3
4
5
注意 : distinct(http://www.my516.com)去重之后不允许带有其它字段,所以其使用具有很大的局限性!
---------------------
MongoDB基本操作总结的更多相关文章
- MongoDB 基本操作和聚合操作
一 . MongoDB 基本操作 基本操作可以简单分为查询.插入.更新.删除. 1 文档查询 作用 MySQL SQL MongoDB 所有记录 SELECT * FROM users; db ...
- 【MongoDB详细使用教程】二、MongoDB基本操作
目录 数据类型 数据库操作 集合操作 数据操作 增 查 改 修改整行 修改指定字段的值 删 数据类型 MongoDB常见类型 说明 Object ID 文档ID String 字符串,最常用,必须是有 ...
- MongoDB【第三篇】MongoDB基本操作
MongoDB的基本操作包括文档的创建.删除.和更新 文档插入 1.插入 #查看当前都有哪些数据库 > show dbs; local 0.000GB tim 0.000GB #使用 tim数据 ...
- mongodb基本操作的学习
1.基本操作: 如何安装?创建存放数据的文件夹 robomongo: 图形化管理工具 create -->save -->connect 创建数据库:use Database_name 检 ...
- 30分钟让你了解MongoDB基本操作
今天记录下MongoDB的基本操作,这只是最基本的,所以是应该掌握的. 数据库 数据库是一个物理容器集合.每个数据库都有自己的一套文件系统上的文件.一个单一的MongoDB服务器通常有多个数据库. 集 ...
- mongodb基本操作及存储图片显示方案
先介绍下mongodb的基本操作及使用 第一部:开启安全性验证 如果需要给MongoDB数据库使用安全验证,则需要用--auth开启安全性检查,则只有数据库认证的用户才能执行读写操作,开户安全性检查, ...
- 30分钟让你了解MongoDB基本操作(转)
今天记录下MongoDB的基本操作,这只是最基本的,所以是应该掌握的. 数据库 数据库是一个物理容器集合.每个数据库都有自己的一套文件系统上的文件.一个单一的MongoDB服务器通常有多个数据库. 集 ...
- MongoDB基本操作(包括插入、修改、子节点排序等)
一.基本操作 1.新增文章 db.article.insert({title:"今天天气很好",content:"我们一起去春游",_id:1}) 2.新增一条 ...
- MongoDB(课时3 MongoDB基本操作)
3.3 MongoDB的基本操作 在MongoDB数据库里面存在数据库的概念,但没有模式(所有的信息都是按照文档保存的),保存数据的结构是BSON结构,只不过在进行一些数据处理的时候才会使用到Mong ...
- 2 Mongodb基本操作
1.基本操作 MongoDB将数据存储为一个文档,数据结构由键值(key=>value)对组成 MongoDB文档类似于JSON对象,字段值可以包含其他文档.数组.文档数组 安装管理mongod ...
随机推荐
- Java设计模式之 — 适配器(Adapter)
转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/9400141 今天一大早,你的leader就匆匆忙忙跑过来找到你:“快,快,紧急任务 ...
- 【2000*】【Codeforces Round #518 (Div. 1) [Thanks, Mail.Ru!] B】Multihedgehog
[链接] 我是链接,点我呀:) [题意] [题解] 找到度数为1的点. 他们显然是叶子节点. 然后每个叶子节点. 往上进行bfs. 累计他们的父亲节点的儿子的个数. 如果都满足要求那么就继续往上走. ...
- 关于 图论·并查集·HDU1232&1856
其核心是追溯其根数和链接两个数,而HDU 1856要多一步,每一个根数要标记自己和自己子数的个数,因此用结构体.注意:1856 用C写没超时,用C++写超时了╮(╯﹏╰)╭ 接下来是题目和代码: 畅通 ...
- 洛谷 P1649 [USACO07OCT]障碍路线Obstacle Course
P1649 [USACO07OCT]障碍路线Obstacle Course 题目描述 Consider an N x N (1 <= N <= 100) square field comp ...
- C++:探究纯虚析构函数以及实现数组的高速排序与链表的归并排序
C++:探究纯虚析构函数以及实现数组的高速排序与链表的归并排序 标签: 数据结构 数组 链表 高速排序 归并排序 抽象类 虚继承 by 小威威 1.介绍 本篇博文将通过课后作业的(15 C++ Hom ...
- CodeForces 19D Points(离散化+线段树+单点更新)
题目链接: huangjing 题意:给了三种操作 1:add(x,y)将这个点增加二维坐标系 2:remove(x,y)将这个点从二维坐标系移除. 3:find(x,y)就是找到在(x,y)右上方的 ...
- 关于View的ScrollTo, getScrollX 和 getScrollY
下载地址:源代码 当利用 Scroller 去滑动屏幕或者扩展 ScrollView 的时候,总是会用到 getScrollX 和 getScrollY 去获取当前View 滑动到的位置,那么getS ...
- Nginx 源码安装和调优
常见web架构: LAMP =Linux+Apache+Mysql+PHP LNMP =Linux+Nginx+Mysql+PHP nginx概述: 知道:1 不知道:2 Nginx (&q ...
- 编程算法 - 把字符串转换为整数 代码(C)
把字符串转换为整数 代码(C) 本文地址: http://blog.csdn.net/caroline_wendy 题目: 写一个函数StrToInt, 模拟atoi的功能, 把字符串转换为整数. 须 ...
- Windows下搭建ffmpeg+VS2008开发环境详细教程【转】
本文转载自:http://www.voidcn.com/article/p-vxdntdgc-bkq.html 由于个人是从事音视频开发相关的工作,所以也把自己的一些过程写下来,方便大家以及自己查看, ...