当前位置:网站首页>MongoDB 语法大全
MongoDB 语法大全
2022-08-05 07:11:00 【栗子~~】
文章目录
- 前言
- MongoDB 语法大全
- 01、mongodb 数据库链接
- 02、help查看命令提示
- 03、如果数据库存在,则切换到指定的数据库;如果数据库不存在,则创建数据库
- 04、查询所有的数据库
- 05、查看当前数据库
- 06、插入
- 07、查询
- 08、排序
- 09、查询前3条数据
- 10、查询3条以后数据
- 11、分页
- 12、查询当前集合总数
- 13、删除当前数据库
- 14、新建集合
- 15、删除集合
- 16、获取当前db指定名称的聚集集合
- 17、获取当前db所有聚集集合
- 18、查询当前集合数量
- 19、查询当前集合的数据空间大小
- 20、查询当前集合总大小
- 21、查询当前集合存储空间大小
- 22、集合重命名
- 23、查询当前集合所在数据库
- 24、插入语法
- 25、修改
- 26、删除
- 27、for循环
- 28、新建普通,复合,唯一索引、查询,删除索引
- 29、添加用户
前言
如果您觉得有用的话,记得给博主点个赞,评论,收藏一键三连啊,写作不易啊^ _ ^。
而且听说点赞的人每天的运气都不会太差,实在白嫖的话,那欢迎常来啊!!!
MongoDB 语法大全
01、mongodb 数据库链接
格式:mongodb:// [username:[email protected]]host1[:port1][,host2[:port2],…[,hostN[:portN]]][/[database][?options]]
其中mongodb:// 是必须要有的。
username:[email protected] : -可选项 如果设置,链接数据库服务后会尝试登录该数据库
database :-可选项 如果指定username:[email protected] 链接验证指定数据库,不指定链接test数据库
options :链接选项,如果不使用database 前面需加上/,所有链接选项都是键值对name=value,多个选项时,以&或;分隔。
02、help查看命令提示
help();
db.help();
db.新建集合.help();
例子:db.yangzhenyu.help();
03、如果数据库存在,则切换到指定的数据库;如果数据库不存在,则创建数据库
use 数据库名;
use yangzhenyu
04、查询所有的数据库
// 01 插入一条数据,否则show dbs;不显示
db.yangzhenyu.insert({
"name":"hello world!!!"});
// 02 查询所有数据库
show dbs;
05、查看当前数据库
db;或者 db.getName();
05::01 查看当前数据库状态
db.stats();
05::02 查看当前数据库版本
db.version();
05::03 查看当前数据库链接机器
db.getMongo();
06、插入
db.集合.insert();
在mongoDB中,不需要主动创建集合,当你插入文档时会自动创建
db.yangzhenyu.insert({
"xxx":"yang","age":"27","yyy":"zhenyu"});
07、查询
07::01 查询
db.集合.find()
db.yangzhenyu.find();
07::02 查询只返回一条数据
db.集合.findOne();
db.yangzhenyu.findOne()
07::03 条件and查询
db.集合.find({
"key1":"name1","key2","name2"});
db.yangzhenyu.find({
"xxx":"yang","age":"27"})
07::04 条件or查询
db.集合.find({
$or:[
{
"key1":"name1"},{
"key2":"name2"}
]
})
db.yangzhenyu.find({
$or:[
{
"name":"hello world!!!"}, {
"age":"27"}
]
})
07::05 条件and 和 or 查询
db.集合.find({
"key0":"name0",
$or:[
{
"key1":"name1"},{
"key2":"name2"}
]
})
相当于: key0=name0 and (key1=name1 or key2=name2)
db.yangzhenyu.find({
"age":"27",
$or:[
{
"name":"hello world!!!"}, {
"age":"27"}
]
})
07::06 条件操作符查询
> | 大于 | $gt |
< | 小于 | $lt |
>= | 大于等于 | $gte |
<= | 小于等于 | $lte |
!= | 不等于 | $ne |
db.yangzhenyu.find({
"age":{
$gt:"26"}
});
07::07 模糊查询
db.集合.find({
"字段":/查询内容/});
// 模糊查询-包含2
db.yangzhenyu.find({
"age":/2/
});
// 模糊查询-以2开头
db.yangzhenyu.find({
"age":/^2/
});
//模糊查询-小写kul
db.yangzhenyu.find({
"yyy":/kul/
});
//模糊查询-忽略大小写
db.yangzhenyu.find({
"yyy":/kul/i
});
07::08 $type 操作符查询
$type操作符是基于BSON类型来检索集合中匹配的数据类型,并返回结果
准备:
创建集合typeTest,并插入两条数据
db.typeTest.insert({
"name":"yangzhenyu","age":"27"});
db.typeTest.insert({
"name":"yangzhenyu","age":27});
查询:
db.typeTest.find();
查询age字段为String的数据
db.yzyTest.find({
"age":{
$type:'string'
}});
查询age字段为int的数据
db.typeTest.find({
"age":{
$type:'int'
}});
07::09 去重某列重复数据查询
db.yangzhenyu.find();
age字段 去重查询:
db.yangzhenyu.distinct("age");
07::10、in、not in 查询
in查询:
db.集合.find({
_id:{
$in:["no1","no2"]}
});
not in 查询
db.集合.find({
_id:{
$nin:["no1"]}
});
07::11 指定字段返回
db.yzy.find({
},{
name:1});
db.集合.find(
query,
projection
)
projection: 指定返回字段
格式: {
字段1:1,字段2:1}
08、排序
08::01、升序
查询集合.sort({
字段名:1})
db.yangzhenyu.find().sort({
age:1})
08::02、降序
查询集合.sort({
字段名:-1})
db.yangzhenyu.find().sort({
age:-1})
09、查询前3条数据
查询集合.limit(3);
db.yangzhenyu.find().limit(3);
10、查询3条以后数据
查询集合.skip(3);
db.yangzhenyu.find().skip(3);
11、分页
查询集合.limit(pagesize).skip(第几页的pagesize);
//limit相当于pagesize skip相当于第几页的pagesize
1-3
db.yangzhenyu.find().limit(3).skip(0);
3-6
db.yangzhenyu.find().limit(3).skip(3);
6-9
db.yangzhenyu.find().limit(3).skip(6);
相当于mysql的limit函数
12、查询当前集合总数
查询集合.count();
db.yangzhenyu.find().count();
13、删除当前数据库
db.dropDatabase();
14、新建集合
//创建固定集合
db.createCollection("yzyTest",{
capped:true,size:6142800,max:1000
});
capped - 如果为true,则创建固定集合。固定集合是指有着固定大小的集合,当达到最大值,会自动覆盖最早的文档,当值为true时,必须指定size参数。
size - 为固定集合指定一个最大值,即字节数。
max - 指定固定集合中包含文档的最大数量。
注:在插入文档时,mongoDB首先检查固定集合的size字段,然后检查max字段。
//查看已有集合
show collections;
//在mongoDB中,不需要主动创建,当你插入文档时会自动创建
db.yzyTest1.insert({
"name":"yangzhenyu","age":"27"})
//查看已有集合
show collections;
15、删除集合
db.集合.drop();
db.yzyTest1.drop();
//查看已有集合
show collections;
16、获取当前db指定名称的聚集集合
db.getCollection("yzyTest");
17、获取当前db所有聚集集合
db.getCollectionNames();
18、查询当前集合数量
db.yzyTest.count();
19、查询当前集合的数据空间大小
db.yzyTest.dataSize();
20、查询当前集合总大小
db.yzyTest.totalSize();
21、查询当前集合存储空间大小
db.yzyTest.storageSize();
22、集合重命名
db.yzyTest.renameCollection("yzyRenameTest");
show collections;
23、查询当前集合所在数据库
db.yzyRenameTest.getDB();
24、插入语法
//插入一条数据
db.集合.insertOne({
_id:"01",name:"yang",age:"12"});
//插入多条
db.集合.insertMany([{
_id:"02",name:"yang",age:"12"},{
_id:"03",name:"yang",age:"12"}])
25、修改
25::01、修改集合中现有的文档
db.集合.update(
<query>,
<update>
)
query :update的查询条件,即where后的语句条件;
update : 更新值,也可理解为sql update中set后面的语句;
注:默认只更新找到的第一条;
例子:
db.yzy.find();
//只更新找到的第一条
db.yzy.update({
age:"12"},{
$set:{
age:"13"}});
db.yzy.find();
25::02、根据过滤器更新集合中的单个文档
实例:
db.yzy.find();
db.yzy.updateOne({
age:"12"},{
$set:{
age:"13"}});
db.yzy.find();
25::03、更新与集合指定的筛选器匹配的所有文档
db.yzy.find();
db.yzy.updateMany({
age:"12"},{
$set:{
age:"13"}});
db.yzy.find();
26、删除
从集合中删除单个文档
db.yzy.deleteOne({
age:"13"})
从集合中删除与筛选器匹配的所有文档
db.yzy.deleteMany({
age:"13"})
27、for循环
db.yzy.find().forEach(
function(item){
if(item.age >= 12){
db.yzy.updateOne({
age:item.age},{
$set:{
age:"13"}});
}
}
)
28、新建普通,复合,唯一索引、查询,删除索引
//查询当前db所有聚集索引
db.printCollectionStats();
//创建普通索引
//db.集合.ensureIndex({
字段名:1}) 1表示升序、-1表示降序 升序、降序对单索引没有影响,对复合索引有影响
db.yzy.ensureIndex({
"name":1});
//创建复合索引
//db.集合.ensureIndex({
字段1名:1,字段2名:1})
db.yzy.ensureIndex({
"name":1,"age":1});
//创建唯一索引
//db.集合.ensureIndex({
字段名:1}) 1表示升序、-1表示降序
db.yzy.ensureIndex({
"age":1},{
"unique":true});
//删除索引
//db.集合.dropIndex({
字段名:1});
db.yzy.dropIndex({
"name":1});
//查询当前集合所有索引
//db.集合.getIndexes()
db.yzy.getIndexes();
29、添加用户
db.createUser( {
user: "sa",
pwd: "sa",
roles: [ {
role: "root", db: "admin" } ]
});
边栏推荐
- 4520. 质数
- Bluetooth gap protocol
- 文本特征化方法总结
- 唤醒手腕 - 微信小程序、QQ小程序、抖音小程序学习笔记(更新中)
- Use of thread pool (combined with Future/Callable)
- PCI Pharma Services Announces Multi-Million Dollar Expansion of UK Manufacturing Facility to Meet Growing Demand for Global High Potency Drug Manufacturing Services to Support Oncology Treatment
- 真实字节跳动测试开发面试题,拿下年薪50万offer。
- 《基于R语言的自动数据收集》--第3章 XML和JSON
- 算法拾遗十五补链表相关面试题
- 【动态类型检测 Objective-C】
猜你喜欢
游戏思考19:游戏多维计算相关:点乘、叉乘、点线面距离计算
Mysql为什么 建立数据库失败
Flink Learning 10: Use idea to write WordCount and package and run
In the anaconda Promat interface, import torch is passed, and the error is reported in the jupyter notebook (only provide ideas and understanding!)
MySQL:连接查询 | 内连接,外连接
Modeling of the MAYA ship
HR:这样的简历我只看了5秒就扔了,软件测试简历模板想要的进。
2022熔化焊接与热切割操作证考试题及模拟考试
RNote108---Display the running progress of the R program
UDP broadcast
随机推荐
Technical Analysis Mode (8) Double Top and Bottom
Vulnhub靶机:HA_ NARAK
ARM Cortex-M上的Trace跟踪方案
游戏思考19:游戏多维计算相关:点乘、叉乘、点线面距离计算
C# FileSystemWatcher
Mysql master-slave delay reasons and solutions
【instancetype类型 Objective-C】
MAYA船的建模
高端无主灯设计灯光设计该如何布置射灯灯具?
环网冗余式CAN/光纤转换器 CAN总线转光纤转换器中继集线器hub光端机
Vulnhub target drone: HA_ NARAK
Liunx教程超详细(完整)
Shiny02---Shiny exception solution
Mysql为什么 建立数据库失败
【win7】NtWaitForKeyedEvent
Flink学习10:使用idea编写WordCount,并打包运行
FPGA parsing B code----serial 4
Redis数据库学习
MySQL: join query | inner join, outer join
强网杯2022 pwn 赛题解析——house_of_cat