一,数据库操作
1)选择和创建数据库语法:
use 数据库名
use命令的规则是,如果存在对应的数据库那么就切换,不存在就创建
2)数据库的删除
db.dropDatabase()
3)查看有权限的数据库
show dbs 或者 show databases
注意
:当你使用use命令创建了一个新的数据时,使用show dbs是看不到你刚才的数据的,因为show dbs看的是磁盘里的数据库,而你创建的这个数据库还在内存中,只有新创建的数据库有一个集合时才会持久化到磁盘中;
4)查看当前使用的数据库
db
通过shell连接本地MongoDB数据库简单操作
>*******************创建新库,并切换到新库,已存在的库则会直接切换*******************
> use mydb
switched to db mydb
>
>******************显示当前使用的库********************
> db
mydb
>
>*******************删除当前库*******************
> db.dropDatabase()
{
"ok" : 1 }
>
>*******************显示所有的库*******************
> show dbs
admin 0.000GB
config 0.000GB
local 0.000GB
>
二,集合操作
集合就是对应关系型数据的表
1)集合的显示创建(显示创建)
db.createConllection(“集合名”)
2)集合查看
show collections
3)集合删除
db.集合名.drop() 或 db.collection.drop()
举例:
>******************查看当前使用的那个库*******************
> db
mydb
>
>*******************创建集合(mysql的表)*******************
> db.createCollection("myCollection")
{
"ok" : 1 }
>
>*******************查询当前库下所有的集合*******************
> show collections
myCollection
>
>*******************删除集合*******************
> db.myCollection.drop()
true
4)集合隐式创建就是创建文档是没有对应的集合,系统自动创建
三,文档的基本CRUD
文档就是关系型数据一条一条的数据,只是mongodb的文档数据结构和JSON基本一致;
1),文档的插入
单个文档插入:
db.myCollection.insert(要插入的数据) 或 db.myCollection.save(要插入的数据)
批量文档插入:
db.myCollection.insertMany([ 要插入的数据,要插入的数据,要插入的数据 . . . . . . ])
注意
:批量插入时出现异常,后面的数据不会再执行,而前面已插入成功的不会回滚;
try{}catch{}来输出异常
try{ 插入语句 }catch(e){ print(e); }
文档查询:
db.集合名.find() 或 db.集合名.find({你要查询的条件})
举例:
>*******************插入一条数据*******************
> db.myCollection.insert({
"_id":"1","name":"张三","age":NumberInt(10),"time":new Date()})
WriteResult({
"nInserted" : 1 })
>
> db.myCollection.find()
{
"_id" : "1", "name" : "张三", "age" : 10, "time" : ISODate("2021-12-04T11:51:59.724Z") }
>
>******************批量插入多条数据*******************
> db.myCollection.insertMany([{
"_id":"2","name":"张三","age":NumberInt(10),"time":new Date()},{
"_id":"3","name":"张三","age":NumberInt(10),"time":new Date()}])
{
"acknowledged" : true, "insertedIds" : [ "2", "3" ] }
>
> db.myCollection.find()
{
"_id" : "1", "name" : "张三", "age" : 10, "time" : ISODate("2021-12-04T11:51:59.724Z") }
{
"_id" : "2", "name" : "张三", "age" : 10, "time" : ISODate("2021-12-04T11:53:53.746Z") }
{
"_id" : "3", "name" : "张三", "age" : 10, "time" : ISODate("2021-12-04T11:53:53.746Z") }
>
2),文档的查询
查询某个集合所有的数据:
db.集合名.find()
根据条件查询:
db.集合名.find({你要查询的条件})
根据条件查询一条类似于mysql的limit 1 :
db.集合名.findOne({你要查询的条件}) 或 db.集合名.findOne()
投影查询,查询想要展示的参数
db.集合名.findOne({你要查询的条件},{要展示的字段:1,不想展示id:0})
> db