简介
mongo是一个非关系型数据库,对存储的数据的类型没有很强的要求
简单命令
./mongo
use db_name //切换数据库
db.auth("usernam","passeord") //认证
show dbs //查询数据库
show collections //查询该数据库下所有的集合表
创建用户
1、创建管理员用户
use admin //切换到admin数据库
db.createUser({
user: "myUserAdmin",
pwd: "abc123",
roles:[{role:"userAdminAnyDatabase",db:"admin"},"readWriteAnyDatabase"]//可以读写任何数据库
})
2、创建普通用户
//给test数据库创建用户
use test //切换到test数据库
db.createUser(
{
user: "etherc",
pwd: "etherc",
roles: [ { role: "readWrite", db: "test" }, //etherc用户可以对test数据库进行读写
{ role: "read", db: "reporting" } ] //etherc用户可以对reporting数据库进行读
}
)
查询集合
1、查询某数据库下所有的集合
show collections //查询该数据库下所有的集合表
2、查询test集合下的文档数据
db.test.find() //查询集合名为test的集合下的所有文档数据
db.test.find().pretty() //同上,查询集合名为test的集合下的所有文档数据,但更友好展示
创建集合
1、显式创建collection:
db.createCollection(‘collectionName’)
2、隐式创建collection(插入数据前创建):
db.collectionName.insert(document)
删除集合
1、删除test集合
db.test.drop()
2、清空所有,类似truncate
db.user.remove({})
向集合中添加数据
1、向test集合中添加单个文档
db.test.insert({name:"will",age:17})
2、向test集合增加单个文档,并指定_id
db.test.insert({_id:22,name:"will",age:17,gender:"boy",email:"will@itsource.cn"})
3、向test集合中增加多个文档
db.test.insert([
{name:"张三",age:17},
{name:"李四",age:18},
{name:"王五",age:19}
])
更新集合数据
1、只更新test集合第一条记录:
db.test.update( { "count" : { $gt : 1 } } , { $set : { "test2" : "OK"} } );
2、全部更新test集合:
db.test.update( { "count" : { $gt : 3 } } , { $set : { "test2" : "OK"} },false,true );
3、只添加test集合第一条:
db.test.update( { "count" : { $gt : 4 } } , { $set : { "test5" : "OK"} },true,false );
4、全部添加进去:
db.test.update( { "count" : { $gt : 5 } } , { $set : { "test5" : "OK"} },true,true );
元数据
1、系统的命名空间
数据库的信息是存储在集合中。它们使用了系统的命名空间:dbname.system.*
在MongoDB数据库中名字空间 .system.* 是包含多种系统信息的特殊集合(Collection),如下:
集合命名空间 描述
dbname.system.namespaces 列出所有名字空间。
dbname.system.indexes 列出所有索引。
dbname.system.profile 包含数据库概要(profile)信息。
dbname.system.users 列出所有可访问数据库的用户。
dbname.local.sources 包含复制对端(slave)的服务器信息和状态。
对于修改系统集合中的对象有如下限制。
在{{system.indexes}}插入数据,可以创建索引。但除此之外该表信息是不可变的(特殊的drop index命令将自动更新相关信息)。
{{system.users}}是可修改的。 {{system.profile}}是可删除的。
2、MongoDB 数据类型
String 字符串。存储数据常用的数据类型。在 MongoDB 中,UTF-8 编码的字符串才是合法的。
Integer 整型数值。用于存储数值。根据你所采用的服务器,可分为 32 位或 64 位。
Boolean 布尔值。用于存储布尔值(真/假)。
Double 双精度浮点值。用于存储浮点值。
Min/Max keys 将一个值与 BSON(二进制的 JSON)元素的最低值和最高值相对比。
Array 用于将数组或列表或多个值存储为一个键。
Timestamp 时间戳。记录文档修改或添加的具体时间。
Object 用于内嵌文档。
Null 用于创建空值。
Symbol 符号。该数据类型基本上等同于字符串类型,但不同的是,它一般用于采用特殊符号类型的语言。
Date 日期时间。用 UNIX 时间格式来存储当前日期或时间。你可以指定自己的日期时间:创建 Date 对象,传入年月日信息。
Object ID 对象 ID。用于创建文档的 ID。
Binary Data 二进制数据。用于存储二进制数据。
Code 代码类型。用于在文档中存储 JavaScript 代码。
Regular expression 正则表达式类型。用于存储正则表达式。
mongo客户端
可以参考该链接的介绍mongo客户端