数据库
创建、查看、删除库
查看数据库
show dbs" 命令可以显示所有数据的列表。
> show dbs
admin 0.000GB
config 0.000GB
local 0.000GB
执行 “db” 命令可以显示当前数据库对象或集合。
> db
test
切换数据库
运行"use"命令,可以连接到一个指定的数据库(若没有,则会自动创建)
> use djtest
switched to db djtest
插入内容
往数据库里插入一条数据
> db.djtest.insert({"name":"xiaohong"})
WriteResult({ "nInserted" : 1 })
删除数据库
> db.dropDatabase()
{ "dropped" : "djtest", "ok" : 1 }
有一些数据库名是保留的,可以直接访问这些有特殊作用的数据库。
- admin: 从权限的角度来看,这是"root"数据库。要是将一个用户添加到这个数据库,这个用户自动继承所有数据库的权限。一些特定的服务器端命令也只能从这个数据库运行,比如列出所有的数据库或者关闭服务器。
- local: 这个数据永远不会被复制,可以用来存储限于本地单台服务器的任意集合
- config: 当Mongo用于分片设置时,config数据库在内部使用,用于保存分片的相关信息。
集合
- 集合相当于一张表
- 集合可以有多个文档(相当于表里可以有多个列)
在数据库下,如果没有创建集合,那么会自动创建一个和数据库相同名称的集合名
> use demo
switched to db demo
> db.demo.insert({"name":"zhangsan"})
WriteResult({ "nInserted" : 1 })
> show collections
demo
创建、查看、删除集合(表)
> show collections
demo
> db.createCollection("c1") //创建集合
{ "ok" : 1 }
> db.createCollection("c2")
{ "ok" : 1 }
> show collections //查看集合
c1
c2
demo
> db.c1.drop() //删除集合
true
> db.c2.drop()
true
> show collections
demo
文档
- 文档是mongodb的基本单元
- 相当于表中的一条记录
- 以json格式显示
插入、查看文档(相当于DML:IUDS)
插入:
db.collection.insert({“name”:“hello”})
查看:
db.collection.find().pretty()
插入复杂的文档
声明变量
document=({
title:‘MongoDB’,
by:‘RuotongYu’,
tags:[‘mongodb’,‘database’,‘NoSQL’],
});
db.collection.insert(document)
> db.createCollection("c2")
{ "ok" : 1 }
> db.c2.insert({"name":"xiaohong"}) //插入文档
WriteResult({ "nInserted" : 1 })
> db.c2.find() //查看文档
{ "_id" : ObjectId("5e97113b645bae6856e8bb6b"), "name" : "xiaohong" }
> db.c2.find().pretty() //pretty可以更美观的进行展示
{ "_id" : ObjectId("5e97113b645bae6856e8bb6b"), "name" : "xiaohong" }
> doc=({"name":"xiaohei","age":32}) //声明变量
{ "name" : "xiaohei", "age" : 32 }
> db.c2.insert(doc) //引用变量
WriteResult({ "nInserted" : 1 })
> db.c2.find().pretty()
{ "_id" : ObjectId("5e97113b645bae6856e8bb6b"), "name" : "xiaohong" }
{
"_id" : ObjectId("5e9711bb645bae6856e8bb6c"),
"name" : "xiaohei",
"age" : 32
}
更新和删除
update() 方法用于更新已存在的文档。语法格式如下:
db.collection.update(
<query>,
<update>,
{
upsert: <boolean>,
multi: <boolean>,
writeConcern: <document>
}
)
参数说明:
- query : update的查询条件,类似sql update查询内where后面的。
- update : update的对象和一些更新的操作符(如 , , ,inc…)等,也可以理解为sql update查询内set后面的
- upsert : 可选,这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
- multi : 可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。
- writeConcern :可选,抛出异常的级别。
注意:update是替换,没有修改的字段会消失!
修改文档
db.col.upate({'title':'MongoDB'})
删除文档
db.col.remove({'name':'hello123'})
删除一个文档
db.col.remove.({'name':'hello',1})