一、MongoDB基础概念
在mongodb中是通过数据库、集合、文档的方式来管理数据,下边是mongodb与关系数据库的一些概念对比:
SQL术语/概念 | MongoDB术语/概念 | 解释/说明 |
---|
database | database | 数据库 |
table | collection | 数据库表/集合 |
row | document | 数据记录行/文档 |
column | field | 数据字段/域 |
index | index | 索引 |
table joins | | 表连接(MongoDB不支持) |
primary key | primary key | 主键 MongoDB自动在每个集合中添加_id主键 |
1、一个mongodb实例可以创建多个数据库
2、一个数据库可以创建多个集合
3、一个集合可以包括多个文档。
连接MongoDB
mongodb的使用方式是客户服务器模式,即使用一个客户端连接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对
二、简单命令
数据库
1、查询数据库 show dbs 查询全部数据库 db 显示当前数据库
2、创建数据库 命令格式: use DATABASE_NAME 例子: use test02 有test02数据库则切换到此数据库,没有则创建。
注意: 新创建的数据库不显示,需要至少包括一个集合。
3、删除数据库(慎用!!!) 命令格式: db.dropDatabase()
例子: 删除test02数据库 先切换数据库:use test02 再执行删除:db.dropDatabase()
集合
集合相当于关系数据库中的表,一个数据库可以创建多个集合,一个集合是将相同类型的文档管理起来。
1、创建集合 db.createCollection(name, options) name: 新创建的集合名称 options: 创建参数
2、删除集合 db.collection.drop() 例子: db.student.drop() 删除student集合
文档
mongodb中文档的格式是json格式,下边就是一个文档,包括两个key:
_id主键和name { "_id" : ObjectId("5b2cc4bfa6a44812707739b5"), "name" : "x" }
插入命令: db.COLLECTION_NAME.insert(document)
每个文档默认以_id作为主键,主键默认类型为ObjectId(对象类型),mongodb会自动生成主键值。
例子:db.student.insert({"name":"x","age":10}) 注意:同一个集合中的文档的key可以不相同!但是建议设置为相同的。
更新文档
在这里插入代码片
db.collection.update(
<query>,
<update>,
<options>
)
query:查询条件,相当于sql语句的where update:更新文档内容 options:选项
删除文档
命令格式: db.student.remove(<query>)
query:删除条件,相当于sql语句中的where
1、删除所有文档 db.student.remove({})
2、删除符合条件的文档 db.student.remove({"name":"x"})
查询文档
db.collection.find(query, projection)
query:查询条件,可不填
projection:投影查询
key,可不填 、 查询全部
db.student.find() 、查询符合条件的记录 查询name等为"x"的文档。
db.student.find({"name":"x"}) 、投影查询 只显示name和age两个key,_id主键不显示。
db.student.find({"name":"x"},{name:1,age:1,_id:0})