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基本操作总结的更多相关文章

  1. MongoDB 基本操作和聚合操作

    一 . MongoDB 基本操作 基本操作可以简单分为查询.插入.更新.删除. 1 文档查询 作用 MySQL SQL  MongoDB  所有记录  SELECT * FROM users;  db ...

  2. 【MongoDB详细使用教程】二、MongoDB基本操作

    目录 数据类型 数据库操作 集合操作 数据操作 增 查 改 修改整行 修改指定字段的值 删 数据类型 MongoDB常见类型 说明 Object ID 文档ID String 字符串,最常用,必须是有 ...

  3. MongoDB【第三篇】MongoDB基本操作

    MongoDB的基本操作包括文档的创建.删除.和更新 文档插入 1.插入 #查看当前都有哪些数据库 > show dbs; local 0.000GB tim 0.000GB #使用 tim数据 ...

  4. mongodb基本操作的学习

    1.基本操作: 如何安装?创建存放数据的文件夹 robomongo: 图形化管理工具 create -->save -->connect 创建数据库:use Database_name 检 ...

  5. 30分钟让你了解MongoDB基本操作

    今天记录下MongoDB的基本操作,这只是最基本的,所以是应该掌握的. 数据库 数据库是一个物理容器集合.每个数据库都有自己的一套文件系统上的文件.一个单一的MongoDB服务器通常有多个数据库. 集 ...

  6. mongodb基本操作及存储图片显示方案

    先介绍下mongodb的基本操作及使用 第一部:开启安全性验证 如果需要给MongoDB数据库使用安全验证,则需要用--auth开启安全性检查,则只有数据库认证的用户才能执行读写操作,开户安全性检查, ...

  7. 30分钟让你了解MongoDB基本操作(转)

    今天记录下MongoDB的基本操作,这只是最基本的,所以是应该掌握的. 数据库 数据库是一个物理容器集合.每个数据库都有自己的一套文件系统上的文件.一个单一的MongoDB服务器通常有多个数据库. 集 ...

  8. MongoDB基本操作(包括插入、修改、子节点排序等)

    一.基本操作 1.新增文章 db.article.insert({title:"今天天气很好",content:"我们一起去春游",_id:1}) 2.新增一条 ...

  9. MongoDB(课时3 MongoDB基本操作)

    3.3 MongoDB的基本操作 在MongoDB数据库里面存在数据库的概念,但没有模式(所有的信息都是按照文档保存的),保存数据的结构是BSON结构,只不过在进行一些数据处理的时候才会使用到Mong ...

  10. 2 Mongodb基本操作

    1.基本操作 MongoDB将数据存储为一个文档,数据结构由键值(key=>value)对组成 MongoDB文档类似于JSON对象,字段值可以包含其他文档.数组.文档数组 安装管理mongod ...

随机推荐

  1. 2018 noip 考前临死挣扎

    基础算法 倍增 贪心 分块 二分 三分 数据结构 线段树 对顶堆 数学 质数 约数 同余 组合 矩阵乘法 图论 二分图判定以及最大匹配 字符串 Tire树 KMP 最小表示法 Hash Manache ...

  2. C#--Task知识点

    5天玩转C#并行和多线程编程 TASK使用总结 Task是什么,字面意思是任务 表示一个异步操作.它是异步操作的首选方式.Task是FRAMEWORK4中的新特性,封装了以前的Thread,并管理Th ...

  3. [bzoj3123][Sdoi2013]森林_主席树_启发式合并

    森林 bzoj-3123 Sdoi-2013 题目大意:给定一片共n个点的森林,T个操作,支持:连接两个不在一棵树上的两个点:查询一棵树上路径k小值. 注释:$1\le n,T \le 8\cdot ...

  4. Java上使用Lombok插件简化Getter、Setter方法

    Maven引入依赖: <dependencies> <dependency> <groupId>org.projectlombok</groupId> ...

  5. android中常见的内存泄漏和解决的方法

    android中的内存溢出预计大多数人在写代码的时候都出现过,事实上突然认为工作一年和工作三年的差别是什么呢.事实上干的工作或许都一样,产品汪看到的结果也都一样,那差别就是速度和质量了. 写在前面的一 ...

  6. win server 2008 r2 iis+php 500错误内部服务器错误。

    今天遇到一个错误是iis 500错误,由于server是别人负责的.查看日志没什么异常,就发如今任务日志里发现有一段时间间隔没有记录.一開始不知道为什么.之后日志里就都是500错误了,在iis哪里配置 ...

  7. apple 团队电话

    back 苹果电话:400 670 18552 这个是国内能打通的

  8. 7种炫酷HTML5 SVG液态水滴融合分解动画特效

    这是一组使用HTML5 SVG过滤器制作的炫酷液态水滴融合分解动画特效.这些SVG动画特效使一些HTML元素.如菜单.分页button.APP.选择框等元素的过渡动画像几粒水滴一样融合分解.效果很的酷 ...

  9. 初探boost之noncopyable学习笔记

    noncopyable 功能 同意程序轻松实现一个不可复制的类. 需包括头文件 #include<boost/noncopyable.hpp>     或 #include<boos ...

  10. yolo源码解析(3):视频检测流程

    代码在自己电脑中!!!!不在服务器 根据前文所说yolo代码逻辑: ├── examples │ ├── darknet.c(主程序) │ │── xxx1.c │ └── xxx2.c │ ├── ...