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资源网邮箱处理】
© 版权声明
本平台(www.cooy.cn)的一切软件、教程及内容信息仅限用于学习和研究,付费仅为收集整理归类费用;
不得将上述内容用于商业或者非法用途,否则一切后果用户自行承担负责。本平台资源、内容、信息均来自来自用户上传,版权争议及其他问题与本平台无关。
您必须在下载后的24个小时之内从您的电脑或手机中彻底删除上述下载内容,如果您喜欢该程序或内容,请支持正版以获取更好的服务。我们非常重视版权问题,如有侵权请发送邮件至下方邮件(655465@qq.com),敬请谅解!
如发现违法违规内容,请联系下方邮箱举报,我们收到后将会第一时间处理。
THE END
暂无评论内容