MongoDB学习(Shell)-增删改基础操作

本文档详细介绍了MongoDB的Shell使用,包括如何添加数据库、查看所有数据库、创建及操作集合、查询数据、更新和删除数据,以及shell的help功能和MongoDB的API。同时,讨论了数据和表的命名规范,以及BSON作为JSON扩展的特点,如支持日期和浮点数类型。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MongoDB基础操作 (以下教程数据库名为:test 表名为:user)
添加数据库
use test #创建数据库
db.user.insert({"name":"test1"}) 为表user添加数据

需注意的是:如果在用了use之后,若无后续操作,其实该数据库并未被创建,只是存在缓存中

查看所有数据库
show dbs
给指定的数据库添加集合(表)并添加数据
db.user.insert({"name":"test1"}) 为表user添加数据

shell中不存在批量插入操作,若需要则需要通过for循环操作

查看数据库中所有的集合(表)
show collections
查询指定表的数据
db.user.finde()     查询所有
db.user.findeOne()  查询第一条数据
db.user.find({查询条件})
更新表中数据
db.user.update({查询条件},{结果值})  直接将源数据覆盖(相当于MySQL中先删除 后插入的效果)
db.user.update({查询条件},{$set:{结果}})  只将结果值用相同键的数据覆盖
相当于MySQL中的 set语句
例如:db.user.update({"name":"test1"},{"class":"软件工程"})
db.user.update({查询条件},{$set:{结果}},true,true)
第三个参数为true:若修改条件不存在,则将该结果插入
第四个参数为true:批量修改,若为false 则默认修改第一条数据
删除表的中数据
db.user.remove({条件}) 

若表的数据量巨大,删除结果可以用drop后 重新创建索引 效率会比remove快

删除表
db.user.drop() 
删除数据库
db.dropDatabase()
shell中的help
里面有所有的shell可以完成的命令帮助
数据库相关的db.help()
集合相关的db.test.help()
例如有:db.dbgetName() 获取数据库名
mongoApi
api.mongodb.org
其他
数据和表命名规范
1、不能是空字符串
2、不得含有“” 空格 、 等特殊字符
3、应全为小写
4、最多64位
5、数据名不能与现有系统保留库同名,如admin、local、config

这样的集合也是不合法的
db-text但是不能通过db.[doucumentName]得到了 要改成db.getCollection(doucumentName) 因为db-text会被当成减法操作

MongoDB的shell内置JavaScript引擎可以直接执行js代码
function insert(object){
    db.getCollection("test").isert(object)
}
insert({name:"wuhah"})
shell也可以用eval
db.eval("retun 'mongodb' ")
MongoDB的客户端相当于一个JavaScript的引擎
Bson是JSON的扩展他先增加了诸如日期,浮点等JSON不支持的数据类型
类型解释
null用于表示空或者不存在的字段
布尔两个数值true和false
32位和64位整数shell中不支持 需要用到其他高级语言的驱动来完成JS不可使用
64位浮点shell中使用的数字其实全是这种类型{x:3.414}
utf-8字符串类型
对象ID内置默认ID对象 (_id:ObjectId())
日期{X:new Data()}
正则{x:/uspcat/i}
JavaScript代码块{x:function(){…}}
underfined为定义类型 注意他和null不是一个类型
数组{gps:[20.56,43]}
内嵌文档{x:{name:”test1”}}
二进制任意字节的字符串shell中是无法使用的
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值