Mongodb的基本操作
Mongodb 的基本操作
官方文档:https://www.mongodb.com/docs/manual/crud/
数据库相关操作
显示所有数据库
show dbs;
show databases;
进入指定数据库
use 数据库名;
创建文档时,如果文档所在的集合或数据库不存在会自动创建该数据库或集合
显示当前所在数据库
db;
显示当前数据库中所有集合
show collections;
插入文档
插入一个文档
# 方式一
db.collection.insert(doc);
# 方式二
db.collection.insertOne(doc);
# 往 student 集合插入一个文档
db.student.insert({"name":"yl01","age":18,"gender":"male"});
# insertOne()只能插入一个文档,如果有多个文档则只插入第一个文档
db.student.insertOne({"name":"yl03","age":18,"gender":"male"});
向集合中插入文档时,如果没有给文档指定 _id 属性值,则数据库会自动为文档添加 _id 属性值,该属性用来作为文档的唯一标识;执行 ObjectId(); 方法可以自动生成一个 _id 属性值
插入多个文档
# 方式一
dbcollection.insert([doc,doc,......]);
# 方式二
db.collection.insertMany([doc,doc,......]);
# eg: 往 student 集合中插入两个文档
db.student.insert([
{"name":"yl02","age":18,"gender":"female"},
{"name":"yl03","age":18,"gender":"female"}
]);
# insertMany()只能插入一个数组,数组里可以有一个或多个文档
db.student.insertMany([
{"name":"yl04","age":18,"gender":"male"},
{"name":"yl05","age":18,"gender":"female"}
]);
查询文档
查询集合中所有文档
db.collection.find();
# eg: 查询 student 集合中的所有文档
db.student.find();
条件查询
# 查询 student 集合中 name=yl01 的文档
db.student.find({"name":"yl01"});
# 查询 student 集合中 age=18 的第一个文档
db.student.find({"age":18})[0];
db.student.findOne({"age":18});
查询集合中的文档数量
db.collection.find().count();
# eg: 查询 student 集合中的文档数量
db.student.find().count();
db.student.find().length();
修改文档
条件替换
# 方式一
db.collection.update();
# 方式二
db.student.replaceOne();
# eg: 将 student 集合中 name=yl01 的文档替换成 {"age":18},执行之后该文档只剩 age 一个属性,以下两种方式都是一次只能替换一个符合条件的文档
db.student.update({"name":"yl01"}, {"age":18});
db.student.replaceOne({"name":"yl01"}, {"age":18});
条件修改
# 修改 student 集合中 name=yl07 文档的属性: age为19,gender为female(如果有多个符合条件的文档 update 默认只修改第一个)
db.student.update({"name":"yl07"}, {$set:{"age":19,"gender":"female"}});
# 修改符合条件的第一个文档
db.student.updateOne({"name":"yl07"}, {$set:{"age":19,"gender":"female"}});
# 同时修改多个符合条件的文档
db.student.updateMany({"name":"yl07"}, {$set:{"age":19,"gender":"female"}});
db.student.update({"name":"yl07"}, {$set:{"age":19,"gender":"female"}}, {multi:true});
update 既可以只修改一个符合条件的文档,也可以同时修改多个符合条件的文档;updateOne 只能修改一个符合条件的文档;updateMany 可以同时修改多个符合条件的文档
删除文档
删除文档属性
# 删除 student 集合中 name=yl02 文档的 age 属性(因为需要 json 格式,所以不能只写 age 属性,要删除的属性可以随便写)
db.student.update({"name":"yl02"}, {$unset:{"age":1}});
删除一个或多个文档
db.collection.remove();
db.collection.deleteOne();
db.collection.deleteMany();
# eg: 删除 student 集合中 name=yl07 的文档,如果符合条件的文档有多个则删除多个
db.student.remove({"name":"yl07"});
db.collection.deleteMany({"name":"yl07"});
# 只删除符合条件的第一个文档
db.student.remove({"name":"yl07"},true);
db.collection.deleteOne({"name":"yl07"});
remove 默认删除多个符合条件的文档,当第二个参数为 true 时只删除符合条件的第一个文档;deleteOne 只能删除一个符合条件的文档;deleteMany 可以同时删除多个符合条件的文档
删除所有文档
db.collection.remove({});
# eg: 删除 student 集合中的所有文档
db.student.remove({});
删除集合
db.collection.drop();
# eg: 删除 student 集合
db.student.drop();
记得快乐
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
2020-11-08 shiro凭证配置