Mongodb基础sqL

news/2025/1/10 12:52:02 标签: mongodb, sql, oracle

------------------------------------------数据库------------------------------
(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”})


http://www.niftyadmin.cn/n/5818675.html

相关文章

apollo内置eureka dashboard授权登录

要确保访问Eureka Server时要求输入账户和密码&#xff0c;需要确保以下几点&#xff1a; 确保 eurekaSecurityEnabled 配置为 true&#xff1a;这个配置项控制是否启用Eureka的安全认证。如果它被设置为 false&#xff0c;即使配置了用户名和密码&#xff0c;也不会启用安全认…

【网络协议】交换机概念与配置(第一部分)

概述 本文将探讨交换机的概念以及交换机的基础配置&#xff0c;并以此引入对 VLAN 的讨论。 文章目录 概述CSMA/CD以太网通信单播&#xff08;Unicast&#xff09;多播&#xff08;Multicast&#xff09;广播&#xff08;Broadcast&#xff09; MAC 地址以太网中的双工设置半双…

企业级PHP异步RabbitMQ协程版客户端 2.0 正式发布

概述 workerman/rabbitmq 是一个异步RabbitMQ客户端&#xff0c;使用AMQP协议。 RabbitMQ是一个基于AMQP&#xff08;高级消息队列协议&#xff09;实现的开源消息组件&#xff0c;它主要用于在分布式系统中存储和转发消息。RabbitMQ由高性能、高可用以及高扩展性出名的Erlan…

redis:安装部署、升级以及失败回退

安装部署 一、准备工作 1. 检查系统要求 确保你的服务器满足 Redis 的基本要求: 操作系统:支持的 Linux 发行版(如 Ubuntu, CentOS)内存:至少 4GB(根据实际应用需求调整)CPU:单核或多核 CPU磁盘空间:足够的磁盘空间用于数据存储和日志记录2. 更新系统软件包 在开始…

数据结构大作业——家谱管理系统(超详细!完整代码!)

目录 设计思路&#xff1a; 一、项目背景 二、功能分析 查询功能流程图&#xff1a; 管理功能流程图&#xff1a; 三、设计 四、实现 代码实现&#xff1a; 头文件 结构体 函数声明及定义 创建家谱树头结点 绘制家谱树&#xff08;打印&#xff09; 建立右兄弟…

c语言-----常识问题

1.VS的C4996错误 由于微软在VS2013中不建议再使用C的传统库函数scanf,strcpy,sprintf等&#xff0c;所以直接使用这些库函数会提示C4996错误&#xff1a; VS建议采用带_s的函数&#xff0c;如scanf_s、strcpy_s&#xff0c;但这些并不是标准C函数。 要想继续使用此函数&…

Win32汇编学习笔记09.SEH和反调试

Win32汇编学习笔记09.SEH和反调试-C/C基础-断点社区-专业的老牌游戏安全技术交流社区 - BpSend.net SEH - structed exception handler 结构化异常处理 跟筛选一样都是用来处理异常的,但不同的是 筛选器是整个进程最终处理异常的函数,但无法做到比较精细的去处理异常(例如处理…

ASP.NET CORE 实现微服务 - 分布式事务 - 2PC、3PC、TCC

在微服务体系下&#xff0c;我们的应用被分割成多个服务&#xff0c;每个服务都配置一个数据库。如果我们的服务划分的不够完美&#xff0c;那么为了完成业务会出现非常多的跨库事务。即使按照 DDD 的原则来切分服务还是免不了有的业务场景需要多个业务同时提交成功或者同时回滚…