首页 > 数据库 >MongoDB 语法大全

MongoDB 语法大全

时间:2023-09-15 16:33:02浏览次数:28  
标签:MongoDB age db 查询 语法 yangzhenyu 集合 find 大全


文章目录

  • 前言
  • MongoDB 语法大全
  • 01、mongodb 数据库链接
  • 02、help查看命令提示
  • 03、如果数据库存在,则切换到指定的数据库;如果数据库不存在,则创建数据库
  • 04、查询所有的数据库
  • 05、查看当前数据库
  • 05::01 查看当前数据库状态
  • 05::02 查看当前数据库版本
  • 05::03 查看当前数据库链接机器
  • 06、插入
  • 07、查询
  • 07::01 查询
  • 07::02 查询只返回一条数据
  • 07::03 条件and查询
  • 07::04 条件or查询
  • 07::05 条件and 和 or 查询
  • 07::06 条件操作符查询
  • 07::07 模糊查询
  • 07::08 $type 操作符查询
  • 07::09 去重某列重复数据查询
  • 07::10、in、not in 查询
  • 07::11 指定字段返回
  • 08、排序
  • 08::01、升序
  • 08::02、降序
  • 09、查询前3条数据
  • 10、查询3条以后数据
  • 11、分页
  • 12、查询当前集合总数
  • 13、删除当前数据库
  • 14、新建集合
  • 15、删除集合
  • 16、获取当前db指定名称的聚集集合
  • 17、获取当前db所有聚集集合
  • 18、查询当前集合数量
  • 19、查询当前集合的数据空间大小
  • 20、查询当前集合总大小
  • 21、查询当前集合存储空间大小
  • 22、集合重命名
  • 23、查询当前集合所在数据库
  • 24、插入语法
  • 25、修改
  • 25::01、修改集合中现有的文档
  • 25::02、根据过滤器更新集合中的单个文档
  • 25::03、更新与集合指定的筛选器匹配的所有文档
  • 26、删除
  • 27、for循环
  • 28、新建普通,复合,唯一索引、查询,删除索引
  • 29、添加用户


前言

博主点个赞,评论,收藏一键三连啊,写作不易啊^ _ ^。
  而且听说点赞的人每天的运气都不会太差,实在白嫖的话,那欢迎常来啊!!!


MongoDB 语法大全

01、mongodb 数据库链接

格式:mongodb:// [username:password@]host1[:port1][,host2[:port2],…[,hostN[:portN]]][/[database][?options]]

其中mongodb:// 是必须要有的。
username:password@ : -可选项 如果设置,链接数据库服务后会尝试登录该数据库
database :-可选项 如果指定username:password@ 链接验证指定数据库,不指定链接test数据库
options :链接选项,如果不使用database 前面需加上/,所有链接选项都是键值对name=value,多个选项时,以&或;分隔。

02、help查看命令提示

help();
db.help();
db.新建集合.help();
例子:db.yangzhenyu.help();

MongoDB 语法大全_字段

03、如果数据库存在,则切换到指定的数据库;如果数据库不存在,则创建数据库

use 数据库名;
use yangzhenyu

MongoDB 语法大全_字段_02

04、查询所有的数据库

// 01 插入一条数据,否则show dbs;不显示
db.yangzhenyu.insert({"name":"hello world!!!"});
// 02 查询所有数据库
show dbs;

MongoDB 语法大全_数据_03

05、查看当前数据库

db;或者 db.getName();

MongoDB 语法大全_数据_04

05::01 查看当前数据库状态

db.stats();

MongoDB 语法大全_数据_05

05::02 查看当前数据库版本

db.version();

MongoDB 语法大全_数据_06

05::03 查看当前数据库链接机器

db.getMongo();

MongoDB 语法大全_数据_07

06、插入

db.集合.insert();
在mongoDB中,不需要主动创建集合,当你插入文档时会自动创建
db.yangzhenyu.insert({"xxx":"yang","age":"27","yyy":"zhenyu"});

MongoDB 语法大全_字段_08

07、查询

07::01 查询

db.集合.find()
db.yangzhenyu.find();

MongoDB 语法大全_数据库_09

07::02 查询只返回一条数据

db.集合.findOne();
db.yangzhenyu.findOne()

MongoDB 语法大全_字段_10

07::03 条件and查询

db.集合.find({"key1":"name1","key2","name2"});
db.yangzhenyu.find({"xxx":"yang","age":"27"})

MongoDB 语法大全_数据库_11

07::04 条件or查询

db.集合.find({
   $or:[
      {"key1":"name1"},{"key2":"name2"}
   ]
})
db.yangzhenyu.find({
$or:[
{"name":"hello world!!!"}, {"age":"27"}
]
})

MongoDB 语法大全_数据_12

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"}
]
})

MongoDB 语法大全_数据_13

07::06 条件操作符查询


>

大于

$gt

<

小于

$lt

>=

大于等于

$gte

<=

小于等于

$lte

!=

不等于

$ne


db.yangzhenyu.find({
"age":{$gt:"26"}
});

MongoDB 语法大全_字段_14

07::07 模糊查询

db.集合.find({"字段":/查询内容/});
// 模糊查询-包含2

db.yangzhenyu.find({
"age":/2/
});

MongoDB 语法大全_数据_15

// 模糊查询-以2开头
db.yangzhenyu.find({
"age":/^2/
});

MongoDB 语法大全_数据_16

//模糊查询-小写kul
db.yangzhenyu.find({
"yyy":/kul/
});

MongoDB 语法大全_数据库_17

//模糊查询-忽略大小写
db.yangzhenyu.find({
"yyy":/kul/i
});

MongoDB 语法大全_字段_18

07::08 $type 操作符查询

$type操作符是基于BSON类型来检索集合中匹配的数据类型,并返回结果
准备:
创建集合typeTest,并插入两条数据
db.typeTest.insert({"name":"yangzhenyu","age":"27"});
db.typeTest.insert({"name":"yangzhenyu","age":27});
查询:
db.typeTest.find();

MongoDB 语法大全_数据_19

查询age字段为String的数据
db.yzyTest.find({"age":{
$type:'string'
}});

MongoDB 语法大全_数据_20

查询age字段为int的数据
db.typeTest.find({"age":{
$type:'int'
}});

MongoDB 语法大全_数据库_21

07::09 去重某列重复数据查询

db.yangzhenyu.find();

MongoDB 语法大全_数据库_22

age字段 去重查询:
db.yangzhenyu.distinct("age");

MongoDB 语法大全_字段_23

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}

MongoDB 语法大全_字段_24

08、排序

08::01、升序

查询集合.sort({字段名:1})
db.yangzhenyu.find().sort({age:1})

MongoDB 语法大全_数据库_25

08::02、降序

查询集合.sort({字段名:-1})
db.yangzhenyu.find().sort({age:-1})

MongoDB 语法大全_字段_26

09、查询前3条数据

查询集合.limit(3);
db.yangzhenyu.find().limit(3);

MongoDB 语法大全_数据库_27

10、查询3条以后数据

查询集合.skip(3);
db.yangzhenyu.find().skip(3);

MongoDB 语法大全_字段_28

11、分页

查询集合.limit(pagesize).skip(第几页的pagesize);
//limit相当于pagesize skip相当于第几页的pagesize
1-3
db.yangzhenyu.find().limit(3).skip(0);

MongoDB 语法大全_字段_29

3-6
db.yangzhenyu.find().limit(3).skip(3);

MongoDB 语法大全_字段_30

6-9
db.yangzhenyu.find().limit(3).skip(6);

MongoDB 语法大全_数据库_31


相当于mysql的limit函数

12、查询当前集合总数

查询集合.count();
db.yangzhenyu.find().count();

MongoDB 语法大全_字段_32

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 语法大全_数据库_33

//在mongoDB中,不需要主动创建,当你插入文档时会自动创建
db.yzyTest1.insert({"name":"yangzhenyu","age":"27"})
//查看已有集合
show collections;

MongoDB 语法大全_字段_34

15、删除集合

db.集合.drop();
db.yzyTest1.drop();
//查看已有集合
show collections;

MongoDB 语法大全_字段_35

16、获取当前db指定名称的聚集集合

db.getCollection("yzyTest");

MongoDB 语法大全_数据_36

17、获取当前db所有聚集集合

db.getCollectionNames();

MongoDB 语法大全_数据_37

18、查询当前集合数量

db.yzyTest.count();

MongoDB 语法大全_字段_38

19、查询当前集合的数据空间大小

db.yzyTest.dataSize();


MongoDB 语法大全_字段_39

20、查询当前集合总大小

db.yzyTest.totalSize();

MongoDB 语法大全_数据_40

21、查询当前集合存储空间大小

db.yzyTest.storageSize();

MongoDB 语法大全_数据库_41

22、集合重命名

db.yzyTest.renameCollection("yzyRenameTest");

MongoDB 语法大全_数据_42

show collections;

MongoDB 语法大全_数据库_43

23、查询当前集合所在数据库

db.yzyRenameTest.getDB();

MongoDB 语法大全_字段_44

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();

MongoDB 语法大全_数据_45

//只更新找到的第一条
db.yzy.update({age:"12"},{$set:{age:"13"}});
db.yzy.find();

MongoDB 语法大全_数据_46

25::02、根据过滤器更新集合中的单个文档

实例:

db.yzy.find();

MongoDB 语法大全_字段_47

db.yzy.updateOne({age:"12"},{$set:{age:"13"}});
db.yzy.find();

MongoDB 语法大全_数据_48

25::03、更新与集合指定的筛选器匹配的所有文档

db.yzy.find();

MongoDB 语法大全_数据库_49

db.yzy.updateMany({age:"12"},{$set:{age:"13"}});
db.yzy.find();

MongoDB 语法大全_数据库_50

26、删除

从集合中删除单个文档
db.yzy.deleteOne({age:"13"})

MongoDB 语法大全_字段_51

从集合中删除与筛选器匹配的所有文档
db.yzy.deleteMany({age:"13"})

MongoDB 语法大全_字段_52

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" } ]
});

标签:MongoDB,age,db,查询,语法,yangzhenyu,集合,find,大全
From: https://blog.51cto.com/u_15345018/7483515

相关文章

  • Vue——模版语法、文本指令、事件指令、属性指令、style和class、条件渲染、列表渲染
    模版语法<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>Title</title><scriptsrc="./js/vue.js"></script></head><body><divid=&......
  • 问题记录:vue项目中的babel转化器是否可以转换npm install下来的依赖库,使该依赖库也可
    vue项目中的babel转化器是否可以转换npminstall下来的依赖库,使该依赖库也可以兼容es6语法?是的,Babel转换器可以用于转换通过npminstall安装的依赖库,以使其兼容ES6语法。Babel是一个广泛使用的JavaScript编译器,可以将较新版本的JavaScript代码转换为向后兼容的版本,以便在不支持这......
  • 【Vue】大悟!模板语法-插值语法&指令语法
    Vue系列持续更新模板语法Vue模板语法包括两大类插值语法插值语法也就是两个大括号,也叫Mustache功能:用于解析标签体内容,可以进行运算、三元表达式等,将最终解析出来的内容插入到标签中写法:{{xxx}},xxx是js表达式,可以直接读取到data中的所有区域插值表达式中只能放置单个表达式,不......
  • Nodejs+Express+MongoDB实战
    项目安装安装express脚手架:npminstallexpress-generator-g创建项目:express-eproject-e代表使用ejs模板,project是项目名称进入项目:npminstall下载依赖包安装nodemon:npminstallnodemon-g使用nodemon来启动项目,不用node来启动启动项目:npmstart,端口号在www启动文件中可以......
  • nodejs+koa2+mongodb 从0到1搭建自己的项目
    nodejs+koa2+mongodb从0到1搭建自己的项目YDJFE2018-09-2811:2419207   相信这对于想要入门写nodejs的朋友来说,一定会有所收获,那么,下面开始我们的正题(这里不使用koa-generator脚手架,我们直接自己搭建项目,适用于前后端分离)一:创建项目可以在全局中安装koa依赖包......
  • 【php基础】基础语法01
    一、PHP简述PHP(全称:PHP:HypertextPreprocessor,即"PHP:超文本预处理器")是一种通用开源脚本语言。在一个php文件中可以包括以下内容:PHP文件可包含文本、HTML、JavaScript代码和PHP代码PHP代码在服务器上执行,结果以纯HTML形式返回给浏览器PHP文件的默认文件扩展名是".php"......
  • Hbaseshell命令中的一些语法
    help‘xx’看库list_namespace看表list建表create't1','f1'写数据put't1','r1','c1:name','value'读数据一行get't1','r1'get't1','r1',{COLUMN=>['r1:name',&......
  • 10个在线检验英语语法的网站
    10个在线检验英语语法的网站 10个在线检验英语语法的网站。推荐10个具有英文检查&修改功能的网站,帮助参加各种英语能力考试的考生更加有方向和针对性的学习和攻克语法。  1.NOUNPLUS:https://www.nounplus.net/grammarcheck/nounplus是一个免费的语法检查......
  • 后端常用的Linux命令大全,建议收藏
    引言作为一名后端工程师,使用终端是一种常见的做法,也是你应该学习的技能。许多命令和实用程序可以帮助你在使用Linux时更有效地完成任务。基本Linux命令如果你想使用Linux操作系统,学习常用的命令将会大有帮助。本篇将为后端工程师回顾一些基本到高级的Linux操作命令。......
  • Vue学习四:组件的三大组成部分、组件通信和进阶语法
    一、组件的三大组成部分<template>里面只能有一个根元素<style>全局样式(默认):影响所有组件局部样式:scoped下样式,只作用于当前组件<script>el根实例独有,data是一个函数,其他配置项一致二、scoped设置局部样式默认情况:写在组件中的样式会全局生效→因此很容易造成多......