mongodb

mongodb入门

简介

mongodb是一个基于分布式文件存储的数据库。由c++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。

mongoab是一个介于关系型数据库和非关系型数据库之间的产品,是非关系型数据库当中功能丰富,最像关系型数据库的一个产品。它支持的数据格式有json,bson等。他最大的特点是它的查询语法类似于面向对象语言。并且它还支持对数据创建索引。

下面的图片是百度百科对mongodb的介绍

基础概念

在mongodb中是通过数据库、集合、文档的方式来管理数据的。下边是mongodb与关系型数据库的一些概念比较图。

和关系型数据库一样,mongodb允许一个实例创建多个数据库,一个数据库创建多个集合,一个集合创建多个文档

链接mongodb

mongodb使用CS架构开发。client shell使用链接命令如下:

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

数据库操作的相关命令

查询数据库

show dbs: 查询所有数据库信息

db

创建数据库

use 库名
使用指定的库,没有则创建(注意:当使用一个新建的库,而且没有插入任何数据时。此时的库实际没有被创建。)

删除数据库

db.dropDatabase

集合相关操作命令

创建集合

db.createConllection(name,options)
name:表示集合的名称
options:表示创建参数

删除集合

db..drop()

表示选中的集合

文档先关操作

集合中插入文档

db..insert(document)

表示选中的集合
document:表示文档,可以是json类型的数据格式

集合中修改指定文档信息

db..update(,,)

表示选中的集合

表示 查询条件,相当于sql语句的where

表示 更新文档内容

表示 选项

$set修改器

db.test_collection.update({“age”:18},{$set:{“name”:”wan”,”age”:16}},{multi:true})

test_collection:集合名称

{“age”:18} :查询结果

{$set:{“name”:”wan”,”age”:16}} 修改条件

{multi:true}:参数 multi 为true时表示修改全部,false时表示修改第一个匹配的文档。默认为false

集合中移除指定文档

db..remove()

表示选中的集合

表示查询的结果
删除前最好先执行查询

集合中搜索指定文档

db..find(query,projection)

表示选中的集合
query :查询条件
projection:投影查询key

投影查询
db.test_collection.find({“age”:18},{name:1,age:1,address:1,_id:0})
test_collection:制定的集合
{“age”:18} :查询条件
{name:1,age:1,address:1,_id:0} :投影参数,个人不明白只有_id可以设置为0,如果别的设置为0会报Projection cannot have a mix of inclusion and exclusion.异常

用户相关操作命令

添加用户

1
2
3
4
5
6
7
db.createUser({
user:"spiderBao",
pwd:"xxx",
roles:[
{role:"root",db:"admin"}
]
})

修改用户

1
2
3
4
5
db.updateUser(
'spiderBao1',{
roles:[
{role:"readWriteAnyDatabase",db:"admin"}]
})

查询用户

1
show users

删除用户

1
db.dropUser("spiderBao1")

修改密码

1
db.changeUserPassword("test1","123")