隐藏页面特效

MongoDB之增删改查

1|0简介


MongoDBNoSQL非关系型,文件型数据库

2|0数据存储


Mysql: id name age sp wq 1 孙悟空 99999 null 定海神针 2 沙悟净 99998 和尚同款项链 null Mongodb: { id:1, name:孙悟空, age:99999, wq:定海神针, ts:金箍, fs:虎皮裙,红丝袜,长筒靴 hobby:['铁扇公主','紫霞','晶晶'] skill:[ { name:'火眼金睛', content:'透视', },{ name:'变大小', content:'变~~~~' } ] }, { id:2, name:沙悟净, age:99998, sp:和尚同款项链 } mongodb存储的就是json数据

3|0相关指令


终端输入>>>>mongo #进入mangodb数据库 show databases; # 显示所有数据库 use databasename # 使用并切换到指定的数据库 db #查看当前使用的数据库 show tables # 显示当前数据库下的所有表 use 不存在的数据库名 # 创建数据库 db.不存在的表名 # 创建表 # 上面新创建数据库和创建表是看不到的,原因是在内存中创建的,但是当你插入数据后就能在本地查看到。 db.tablename.insert({"键":"值"}) # 插入数据 db.tablename.find({查询条件}) # 查询所有符合条件的数据 db.tablename.findOne({查询条件}) # 查询所有符合条件的第一条数据 返回json数据 db.tablename.update({内置条件},{修改语句}) #修改数据 所有mongodb的修改全部基于 修改器 如果符合条件的数据有多条也只会修改第一条 $set #强制将某字段值修改 db.tablename.update({age:66},{$set:{age:77}}) # 如果该字段不存在即创建该字段并赋值 $unset # 删除字段 db.tablename.update({name:"孙悟空"},{$unset:{age:1}}) # 必须为1 $inc # 引用增加 先引用原有数据,在原有数据基础上增加 db.tablename.update({name:"孙悟空"},{$inc:{age:10}}) $push # 针对Array List操作 相当于append db.user.update({name:"孙悟空", {$push:{hobby:7}}}) #在hobby中添加7 $pushAll # 相当于extends db.user.update({name:"孙悟空", {$pushAll:{hobby:[8,9,10]}}}) $pull #相当于remove() 循环遍历删除 db.user.update({name:"孙悟空", {$pull:{hobby:7}}}) $pullAll #删除多个 循环遍历删除 db.user.update({name:"孙悟空", {$pullAll:{hobby:[8,9,10]}}}) $pop # 约等于pop() 因为$pop只能删除第一个和最后一个,默认是最后一个 负数从上往下删(第一个数据) 正数从下往上删(最后一个) db.tablename.remove({查询条件}) #删除指定数据,不写条件则删除所有 $ #数学比较符 $gt #大于 $gte #大于等于 $lt #小于 $lte #小于等于 $eq #等于 $ne #不等于 db.tablename.find({age:{$gt:70}}) # 年龄大于70的



4|0官方推荐写法 增删改查 3.2以后


# 增 db.user.insertOne({}) # 新增一条数据 db.user.insertMany([{},{}]) #新增多条 # 查询 db.user.findOne({}) #查询符号条件的第一条数据 # 改 db.user.updateOne({},{}) # 修改符合条件的第一条数据 db.user.updateMany({},{}) #修改符合条件的所有数据 修改中$关键字的用法 name:"孙悟空",hobby:['抽烟','喝酒','烫头'] hobby中的喝酒改为飙车 $是用来存储符合当前Array条件元素的下标索引 db.user.updateOne({name:'孙悟空',hobby:'喝酒'},{$set:{"hobby.$":"飙车"}}) # {student:{name:"java",content:"基础教学"}} 将字典中的name改为python db.user.updateOne({name:'孙悟空'},{$set:{"student.name":"python"}}) # [{'name':"py"},{'name':"MPy"},{'name':"开车"}] 将列表中字典name对应的值为MPy的改为anyway db.user.updateOne({name:'孙悟空',"student.name":'MPy'},{$set:{"student.$.name":"anyway"}}) # 删 db.user.deleteOne({}) # 删除符合条件的第一条 db.user.deleteMany({}) # 删除所有符合条件的数据

5|0数据类型


Object ID Documents 自生成的 _id String 字符串,必须是utf-8 Boolean:布尔值,true 或者false (这里有坑哦~在我们大Python True False 首字母大写) Integer:整数 (Int32 Int64 你们就知道有个Int就行了,一般我们用Int32) Double:浮点数 (没有float类型,所有小数都是Double) Arrays:数组或者列表,多个值存储到一个键 (list哦,大Python中的List哦) Object:如果你学过Python的话,那么这个概念特别好理解,就是Python中的字典,这个数据类型就是字典 Null:空数据类型 , 一个特殊的概念,None Null Timestamp:时间戳 Date:存储当前日期或时间unix时间格式 (我们一般不用这个Date类型,时间戳可以秒杀一切时间类型)

6|0可视化操作工具nosqlbooster for mongodb的使用





7|0选取,跳过,排序


# 排序 db.user.find({}).sort({age:1}) #以age字段进行排序,1表示正序,-1表示倒序 # 跳过 db.user.find({}).skip(2) # 跳过前两条后查询 # 选取 db.user.find({}).limit(5) # 选取5条 # 重点 当上面三个关键全部出现在一条语句中时,会按照先排序再跳过再选取的逻辑。无论哪个怎么打乱顺序都是会按照这个逻辑查询查询出数据。 可用于分页

__EOF__

本文作者404 Not Found
本文链接https://www.cnblogs.com/weiweivip666/p/14050903.html
关于博主:可能又在睡觉
版权声明:转载请注明出处
声援博主:如果看到我睡觉请喊我去学习
posted @   我在路上回头看  阅读(209)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
点击右上角即可分享
微信分享提示