Mongodb基础sqL

------------------------------------------数据库------------------------------

(2).查看所有数据库

show dbs

(3).选择数据库,如果不存在则隐式创建这个数据库

use 数据库名

------------------------------------------集合------------------------------

(5).查看集合

show collections

(6).创建集合

db.createCollection('集合名')

(7).删除集合

db.集合名.drop()`

(8).删除数据库admin2

use admin2

db.dropDataBase()

------------------------------------------新建文档------------------------------

(1).增加:如果集合存在,那么直接插入数据。如果集合不存在,那么会隐式创建。

db.集合名.insert(JSON数据)

示例:在test2数据库的c1集合中插入数据(姓名叫webopenfather年龄18岁)

use test2

db.c1.insert({uname:"webopenfather",age:18})

(2)._id键的组成

自己增加_id

可以,只需要给插入的JSON数据增加_id键即可覆盖(但实战强烈不推荐)

db.c1.insert({_id:1, uname:"webopenfather", age:18})

(3).一次性插入多条数据

传递数据,数组中写一个个JSON数据即可

db.c1.insert( {uname:"z3", age:3}, {uname:"z4", age:4}, {uname:"w5", age:5} )

(4).快速插入10条数据

由于mongodb底层使用JS引擎实现的,所以支持部分js语法。因此:可以写for循环

for (var i=1; i<=10; i++) { db.c2.insert({uanme: "a"+i, age: i}) }

(5).日期函数

MongoDB支持Date类型的数据,可以直接new一个Date对象,如下:

db.sang_collec.insert({x:new Date()})

-----------------------------------------查看文档------------------------------

(1).语法
db.集合名.find(条件,查询的列)

条件 写法

查询所有的数据 {}或者不写

查询age=6的数据 {age:6}
既要age=6又要性别=男 {age:6,sex:'男'}

查询的列(可选参数) 写法

查询全部列(字段) 不写

只显示age列(字段) {age:1}
除了age列(字段)都显示 {age:0}

db.集合名.find({键:{运算符:值}})

运算符 作用

$gt 大于

gte 大于等于 lt 小于
lte 小于等于 ne 不等于
in in nin not in

(2).查询所有数据

db.c1.find()

(3).查询age大于5的数据

db.c1.find({age:{$gt:5}})

(4).查询年龄是5岁、8岁、10岁的数据

db.c2.find({age:{$in:5,8,10}})

(5).只看年龄列,或者年龄以外的列

db.c2.find({},{age:1})

db.c2.find({},{age:0})

(6).正则查询

正则表达式主要用在查询里边,查询时我们可以使用正则表达式,语法和JavaScript中正则表达式的语法相同,比如查询所有key为x,value以hello开始的文档且不区分大小写:

db.sang_collec.find({x:/^(hello)(.a-zA-Z0-9)+/i})

-------------------------------------------修改文档------------------------------

db.集合名.update(条件,新数据是否新增,是否修改多条,)

新数据此数据需要使用修改器,如果不使用,那么会将新数据替换原来的数据。1db.集合名.update(条件,{修改器:{键:值}}是否新增,是否修改多条,)

修改器作用inc递增rename重命名列set修改列值unset删除列

是否新增

指条件匹配不到数据则插入(true是插入,false否不插入默认)

db.c3.update({uname:"zs30"},{$set:{age:30}},true)

是否修改多条

指将匹配成功的数据都修改(true是,false否默认)

db.c3.update({uname:"zs2"},{$set:{age:30}},false,true)

实例练习

准备工作

use test2;

for(var i = 1; i<= 10; i++){

db.c3.insert( {"uname":"zs"+i,"age":i} );

1、将{uname:"zs1"}改为{uname:"zs2"}

db.c3.update({uname:"zs1"},{$set:{uname:"zs2"}})

2、给{uname:"zs10"}的年龄加2岁或减2岁

db.c3.update({uname:"zs10"},{$inc:{age:2}})

递减只需要将2改为-2即可。

综合练习插入数据:

db.c4.insert( {uname:"神龙教主",age:888,who:"男",other:"非国人"});

------------------------------------------删除文档------------------------------

db.集合名.remove(条件,是否删除一条)

是否删除一条

true:是(删除的数据为第一条)

false:否

db.c3.remove({uname:"zs3"})

相关推荐
Seraphina369 小时前
SQLI-labs(一)黑盒全流程
sql·安全·web安全
我叫洋洋11 小时前
Cadence CIS 元器件库合并实战:3000+ 焊盘、156 个符号零冲突并入自有库
数据库·单片机·嵌入式硬件·oracle·电路
蜗牛互联网12 小时前
MongoDB Atlas Agent Engine之后,如何用版本门禁防止陈旧写入
java·数据库·人工智能·后端·mongodb
做运维的阿瑞14 小时前
多表查询基础:INNER JOIN、LEFT JOIN、RIGHT JOIN
数据库·sql·mysql·算法
Seraphina3614 小时前
DVWA(SQL注入-low,medium,XSS反射-low)
前端·数据库·笔记·sql·网络安全·web·xss
晚风叙码17 小时前
MySQL 表的操作:从建表到删表,一篇讲清楚
android·mysql·oracle
其实防守也摸鱼20 小时前
渗透测试学习计划(全栈综合 · 零基础进阶)
android·数据库·学习·安全·oracle·自动化·学习方法
韩曙亮20 小时前
【JavaEE】MyBatis 基本用法 ⑤ ( 单条件查询 | 多条件查询 | 多条件动态查询 | 单条件动态查询 )
java·sql·java-ee·mybatis·mapper·sql映射
无忧.芙桃21 小时前
网络安全与个人信息保护
oracle
阳光九叶草LXGZXJ1 天前
达梦数据库-学习-71-存过执行过程中重建存过影响验证
linux·运维·数据库·sql·学习