nosql之mongodb的数据库操作+集合的插入和更新操作
mongodb学习文档:
https://docs.mongoing.com/
一、数据库操作
1.数据库use存在就使用,不存就创建
use test1;
查看所有数据库
show dbs;
切换当前数据库
use test1;
查看当前数据库
db
查看当前数据库所有的集合
show tables;
查看集合中的所有数据(条件查询时,如果使用了集合中没有的字段不会报错,但没结果)
db.students.find({})//花括号可加可不加
删除数据库
在当前数据库下运行db.dropDatabase()(有表也可以删除,而hive有表的话就不能删除数据库)
删除集合(nosql和hive不管表中有没有数据都可以直接删除)
db.users.drop();
删除集合所有文档
db.inventory.deleteMany({}) 必须带着花括号
update修改已有的文档可以同时新增字段
insert添加新的文档同时可以新增字段
二、insert操作
insert({})插入空的时候必须带花括号
格式
db.collection.insertMany([ <document 1> , <document 2>, ... ],{writeConcern: <document>,ordered: <boolean>}
)
1…集合不需要预定义,插入数据自动创建,字段创建不受限,插入同时可以随意添加新字段,也可以不插入某一字段的值
db.students.insert({name:'zb1',age:1001,hello:1
}
)
2…插入动作使用insert()函数 db.collection_name.insert()
3.插入时间,支持js,new Date()
db.students.insert({name:'zb11',age:10011,hello:11,sex:"male",addtime:new Date()//系统时间(格林威治时间,晚8小时),服务器时间不可修改,前端时间可以修改
}
)db.students.find()
4.插入多条记录,数组文档注意[ ],即使是插入一条,使用insertmany()也要用[ ]
db.students.insertMany([{name:'zb11',age:10011,hello:13,sex:"male",addtime:new Date()//系统时间(格林威治时间),服务器时间不可修改,前端时间可以修改
},
{name:'zb11',age:10011,hello:14,sex:"male",addtime:new Date()//系统时间(格林威治时间),服务器时间不可修改,前端时间可以修改
}]
)
5.insert = insertmany,insertone只插一个
三、update
3.1修改器:后面跟{key:value}
{$set:{status:'pending'}}
1.$set如果存在这个字段则更新,不存在则创建
2.$currentDate()更新创建时间,不存在则自动创建 修改器:
3.$inc 更新数字字段并加n ,n必须是整数 ,1是加1,-1是减1
3.2查询器:前面是key,后面根条件vlaue
{age:{$gte:10}}
等于: :/$eq
大于:$gt
大于等于:$gte
小于:$lt
小于等于:$lte
不等于:$ne
格式:
db.collection.updateMany(<filter>,相当于sql的where<update>,相当于sql的set{upsert: <boolean>,//默认false,ture表示没有这个条文档的话自动创建writeConcern: <document>,collation: <document>,arrayFilters: [ <filterdocument1>, ... ],hint: <document|string> // Available starting in MongoDB 4.2.1}
)
updateMany(),
1.修改器:set,加一个字段的实现并赋值,set,加一个字段的实现并赋值,set,加一个字段的实现并赋值,set如果存在这个字段则更新,不存在则创建
db.students.updateMany({},{$set:{sex:'male'}})
2.修改器:$currentDate更新创建时间,不存在则自动创建
db.students.updateMany({status:'stop'},{$currentDate:{createtime:true}})
3.update,updateOne只更新一条
db.students.updateOne({age:11},{$set:{age:10,status:'ok'}})
4.updateMany()更新多条 == update students set status=“stop” where status=“ok”
db.students.updateMany({status:'ok'},{$set:{status:'stop'}})
5.replaceOne(),用第二个文档替换之前匹配到的文档
db.students.replaceOne({status:'ok'},{status:'stop',name:"xiao qi" ,age:10,num:1})
6.如果之前匹配不到这个文档 {upsert:true}自动创建后面的新的文档
db.students.replaceOne({status:'o'},{status:'stop',name:"xiao qi" ,age:10,num:1},{upsert:true})
7.年龄大于等于20的学生全部状态改为pending
db.students.updateMany(
{age:{$gte:10}},{$set:{status:'pending'}}
)
8.将年龄大于10岁的学生年龄+1并且记录修改时间使用修改器$inc更新数字字段并加n
db.students.updateMany(
{age:11},{$inc:{age:1},$currentDate:{createtime:true}}
)
9.为小明新增一个字段爱好(aihao)
db.students.updateMany(
{stuname:"小明"
},
{$set:{aihao:"足球,篮球,乒乓球"}
}
)
nosql之mongodb的数据库操作+集合的插入和更新操作相关推荐
- 对Excel表的查询、插入和更新操作
为什么80%的码农都做不了架构师?>>> 本代码主要实现对Excel表的查询.插入和更新操作,而特别指出:Excel表的删除语句操作不支持,只能用更新来替代. using Un ...
- MongoDB基础--数据库和集合基本操作
本笔记针对https://www.shiyanlou.com/courses/running/50 网站对mongoDB的学习和总结. 1,启动mongoDB 因为mongoDB服务并 ...
- MySql单张表中,“多个唯一字段”的插入和更新操作----添加联合唯一索引,Navicat上操作
由于是入门的小白,在项目中遇到了类似的问题,做如下记录. 1.问题场景 开始本篇之前,先说下我遇到的问题场景,实际开发的场景为例: 开发中有一张用户表tb_device_user , 用来记录设备上的 ...
- Python操作excel进行插入、删除行操作实例演示,利用xlwings库实现
Python 操作 Excel 之插入.删除行 第一章:整行插入与删除 ① Excel 的插入行实例演示 ② Excel 的删除行实例演示 第一章:整行插入与删除 ① Excel 的插入行实例演示 插 ...
- MongoDB新建数据库、集合以及用户创建和权限设置
有段时间没用MongoDB了,最近因为业务需要开始使用MongoDB.这里就简单总结一下常用命令. 1.连接及查看所有数据库 mongo 主机ip:端口号/连接的数据库名 -u 用户名 -p 密码 / ...
- dede diy.php查询数据,织梦二次开发数据库操作查询、插入、更新、删除实例
/* DedeCms 数据库使用实例说明 */ require_once (dirname(__FILE__) . "/include/common.inc.php"); //新建 ...
- SQLServerBulkCopy大容量插入、更新操作
说明 pro环境在程序启动时需要运行50w update sql,在uat环境测试 1)分批1000每次,批量更新需要花时间120s左右: 2)采用下面类似第二个测试用例(先把数据插入临时表.临时表同 ...
- MongoDB 实战教程:数据库与集合的 CRUD 操作篇
你好,我是悦创. 公众号:AI悦创 简介 MongoDB 是非关系型数据库(NoSQL)的代表之一,它具有高灵活.可水平扩展.高可用等优秀特性,并且它提供了强大又丰富的查询语句使开发者能够随心所欲地操 ...
- java查询到更新之前的数据_Java对数据库的查询和更新操作详解
这篇文章主要介绍了使用Java对数据库进行基本的查询和更新操作,是Java入门学习中的基础知识,需要的朋友可以参考下 数据库查询 利用Connection对象的createStatement方法建立S ...
最新文章
- java入门(p1)进入java的世界
- 基于SSM实现的图书馆管理系统
- linux oracle bad elf,oracle11g安装到red hat6.2 64位系统报错:/lib/ld-linux.so.2: bad ELF interpreter...
- 计算机系统时间无法更改,电脑时间不能修改|系统时间改不了 四个处理办法
- gatsby_使用TinaCMS + Gatsby编辑Markdown的3种方法
- java作业——Day0014
- 开发中所使用的渠道(统计分析、分享、第三方登录、短信等)
- Adversarial examples in the physical world论文解读
- insert into 多条数据_最全总结 | 聊聊 Python 数据处理全家桶(MongoDB 篇)
- H.264/AVC简介
- mysql分级建表_Mysql如何使用命令实现分级查找帮助详解
- h5应用数据加密_在线视频加密用H5加密方案有哪些优点?
- 九大背包问题专题--有依赖的背包问题(树形Dp结合)
- overleaf表格_LaTeX基本命令使用教程(清晰实例)(Overleaf平台)(论文排版)
- 使用Origin绘制边际分布曲线(Marginal distributions plots)的思路和方法
- python源程序扩展名有那两种_Python源程序的扩展名是:
- 程序员必备的编程集成开发工具
- [云数据中心] 《云数据中心网络架构与技术》读书笔记 第八章 构建云数据中心端到端安全
- ​pypandoc库实现文档转换​
- Zadig, 极客的浪漫
热门文章
- ios android跨服务器,阴阳师ios怎么转安卓 阴阳师跨系统角色转移服务介绍_游侠手游...
- 解决Lua获取unity 文本内容时存在\u200B(8203)字符问题
- android方框验证码,Android自定义方框EditText注册验证码
- 围观大神是如何用 Python 处理文件的?
- 制作深度操作系统U盘启动盘
- Android应用开发用Kotlin还是Java 好?
- 【官网翻译】性能篇(十)性能提示
- E Mark认证介绍
- 记录一次微信公众号开发遇到的问题,提示二级域名未备案
- android中关于图片分享到QQ或者微信,朋友圈及其他(免SDK)