mongodb入门

基础概念

MongoDB中是通过数据库、集合、文档来管理数据库的

传统数据库和MongoDB数据库对比

image.png

1、一个mongodb实例可以创建多个数据库

2、一个数据库可以创建多个集合

3、一个集合可以包括多个文档。

连接MongoDB

1、命令格式

mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][? options]]

mongodb:// 固定前缀 
username:账号,可不填 
password:密码,可不填 
host:主机名或ip地址,只有host主机名为必填项。 port:端口,可不填,默认27017
/database:连接某一个数据库 
?options:连接参数,key/value对

例子:
mongodb://localhost 连接本地数据库27017端口 mongodb://root:itcast@localhost 使用用户名root密码为itcast连接本地数据库27017端口 mongodb://localhost,localhost:27018,localhost:27019,连接三台主从服务器,端口为27017、27018、27019

2、使用mongodb自带的javascript shell(mongo.exe)连接

cmd状态执行mongo.exe:

image.png

集合 (表)

创建集合

#语法
db.createCollection(name, options) 

#参数说明
name: 要创建的集合名称
options: 可选参数, 指定有关内存大小及索引的选项

例子:
创建固定集合 student,整个集合空间大小 6142800 KB, 文档(行)最大个数为 10000 个。
db.createCollection("student", { capped : true, autoIndexId : true, size : 6142800, max : 10000 } )

options可选参数如下图:

image.png

总结:

最常用是autoIndexId:true,与关系型数据库相比不用创建固定的列,指定列的类型,mongodb数据库列不固定,一个文档可以有三列,也可以有多列。

删除集合

db.collection.drop() 

#删除student集合
例子: db.student.drop() 

文档(行)

插入文档

mongodb中文档的格式是json格式,下边就是一个文档,包括两个key:_id主键和name

每个文档默认以_id作为主键,主键默认类型为ObjectId(对象类型),mongodb会自动生成主键值。

例子:

db.student.insert({"name":"张涛","age":10});

总结:(官方建议)尽量让相同的文档插入到同一个集合中。

更新文档

语法:
db.collection.update(
  <query>,  
  <update>, 
  <options>
)

参数说明:
query:查询条件,相当于sql语句的where 
update:更新文档内容
options:选项

例子:

1、替换文档将符合条件"name":"北京黑马程序"的第一个文档替换为{“name”:“北京黑马程序员”,“age”:10}。

db.student.update(
{"name":"黑马程序员"},
{"name":"北京黑马程序员","age":10}
)

2、 s e t 修 改 器 使 用 set修改器使用 set使set修改器指定要更新的key,key不存在则创建,存在则更新。将符合条件"name":"北京黑马程序"的所有文档更新name和age的值。

db.student.update(
{"name":"黑马程序员"},
  {$set:
  {"name":"北京黑马程序员","age":10}
  },
{multi:true}
)

multi:false表示更新第一个匹配的文档,true表示更新所有匹配的文档。

删除文档

语法:
db.student.remove(<query>)

参数说明
query:删除条件,相当于sql语句中的where

例子
1、删除所有文档
db.student.remove({})
2、删除符合条件的文档
db.student.remove({"name":"黑马程序员"})

查询文档

语法:
db.collection.find(query, projection)

参数说明:
query:查询条件,可不填
projection:投影查询key,可不填

例子
1、查询全部
db.student.find()
2、查询符合条件的记录查询name等为"黑马程序员"的文档
db.student.find({"name":"黑马程序员"})
3、投影查询只显示name和age两个key,_id主键不显示。
db.student.find({"name":"黑马程序员"},{name:1,age:1,_id:0})
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值