1. 入门指南
1.1 简介
- NoSQL,全称是”Not Only Sql”, 指的是非关系型的数据库
- MongoDB 是一个面向集合的,模式自由的文档型数据库
- MongoDB是基于 JSON 来描述数据的,所有的“数据行”都可以通过一个JSON格式的文档(document)来表示
1.2 特点
- 面向集合(Collenction-Orented)
- 模式自由(schema-free)
- 文档型
1.3 文档型
- 数据是键-值对的集合,键是字符串,值可以是数据类型集合里的任意类型,包括数组和文档。
- ⽂件存储格式为 BSON 数据格式(⼀种JSON的扩展),即 “Binary Serialized Document Notation.”
2. 实战
2.1 数据库操作
# use 代表创建并使⽤
> use 库名
#查看当前所在库
> db
# 删除当前选中的库
> db.dropDatabase()
2.2 创建用户
创建管理员用户
> use admin
> db.createUser(
{
user:"root",
pwd:"111111",
roles:[{role:"root",db:"admin"}]
}
)
创建数据库用户 (用户只能访问该数据库)
> use mydb
> db.createUser(
{
user: "Tinyspot",
pwd: "123456",
roles: ["readWrite"]
}
)
查看用户信息 show users
2.3 集合操作
# 创建集合
> db.createCollection('collectionName', [options])
# 删除集合
> db.collectionName.drop();
示例:
> db.createCollection('user')
> db.user.drop()
2.4 文档操作
db.collectionName.insert({"name":"Tinyspot","age":20});
MongoDB 中每个⽂档都会有⼀个 _id
作为唯⼀标识, _id
默认会⾃动⽣成;也可⼿动指定
MongoDB 会区分类型和大小写
MongoDB 中的文档不能包含重复的键
示例:
单条⽂档
> db.user.insert({"name":"Tinyspot","age":20});
多条文档
> db.user.insert([
{"name":"Tinyspot","age":20},
{"name":"Bob","age":12}
]);
3. ⽂档查询
语法 db.collectionName.find(query, projection)
示例:
# 查询所有
> db.user.find()
# pretty() ⽅法以格式化的⽅式来显示所有⽂档
> db.user.find().pretty()
3.2 条件操作符
单条件
# field > value
> db.user.find({"field":{$gt:value}});
多条件
# value1 db.user.find({ "field" : { $gt: value1, $lt: value2 } } );
3.3 其他
$in
包含 db.user.find({"age":{$in: [2,4,6]}});
$all
匹配所有 db.user.find({"age": {$all : [6, 8]}});
3.4 sort 排序
> db.users.find().sort({age: 1});
> db.users.find().sort({age: -1});
3.5 count 查询
> db.user.find().count();
4. 索引
4.1 索引操作
语法:db.collectionName.createIndex(keys, options)
示例:
> db.user.createIndex({'name':1})
说明: name 为索引字段,1 表示按升序创建索引 (-1 表示降序)
# 查看索引
> db.collectionName.getIndexes()
# 删除指定索引
> db.collectionName.dropIndex("key")
4.2 复合索引
> db.collectionName.createIndex({"name":1,"age":-1})
注意: mongoDB 中复合索引和传统关系型数据库⼀致都是左前缀原则
【信息由网络或者个人提供,如有涉及版权请联系COOY资源网邮箱处理】
© 版权声明
部分内容为互联网分享,若有侵权请联系站长删除。
THE END
暂无评论内容