mongodb教程

8/18/2022

# 简介

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

MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。

# 数据库

一个 mongodb 中可以建立多个数据库。

MongoDB 的默认数据库为"db",该数据库存储在 data 目录中。

MongoDB 的单个实例可以容纳多个独立的数据库,每一个都有自己的集合和权限,不同的数据库也放置在不同的文件中。

# 连接

使用默认端口来连接 MongoDB 的服务。

mongodb://localhost
1

# 连接命令格式

使用用户名和密码连接到 MongoDB 服务器,你必须使用 'username:password@hostname/dbname' 格式,'username'为用户名,'password' 为密码。

使用用户 admin 使用密码 123456 连接到本地的 MongoDB 服务上。输出结果如下所示:

> mongodb://admin:123456@localhost/
1

使用用户名和密码连接登录到指定数据库,格式如下:

mongodb://admin:123456@localhost/test
1

# 数据库操作

# 创建数据库

use DATABASE_NAME
1

如果数据库不存在,则创建数据库,否则切换到指定数据库。

# 删除数据库

db.dropDatabase()
1

删除当前数据库,你可以使用 db 命令查看当前数据库名。

# 查看所有数据库

> show dbs
local  0.078GB
test   0.078GB
1
2
3

# 显示当前数据库对象

> db
test
1
2

# 插入数据

db.runoob.insert({"name":"菜鸟教程"})
1

# 创建集合

db.createCollection(name, options)
1

参数说明:

  • name: 要创建的集合名称
  • options: 可选参数, 指定有关内存大小及索引的选项

# 删除集合

db.collection.drop()
1

以下实例删除了 runoob 数据库中的集合 site:

> use runoob
switched to db runoob
> db.createCollection("runoob")     # 先创建集合,类似数据库中的表
> show tables             # show collections 命令会更加准确点
runoob
> db.runoob.drop()
true
> show tables
> 
1
2
3
4
5
6
7
8
9

# 查看已有集合

可以使用 show collections 或 show tables 命令:

> show collections
runoob
system.indexes
1
2
3

# 自动创建集合

> db.mycol2.insert({"name" : "菜鸟教程"})
> show collections
mycol2
...
1
2
3
4

# 插入文档

db.collection.insert(document)
# 插入一个文档
db.collection.insertOne()
# 插入一个多个文档
db.collection.insertMany()
1
2
3
4
5

# 更新文档

db.col.update({'title':'MongoDB 教程'},{$set:{'title':'MongoDB'}})
1

# 删除文档

db.col.remove({'title':'MongoDB 教程'})
1

# 删除所有数据

db.col.remove({})
1

# 查询文档

db.col.find().pretty()
1

# AND 条件

MongoDB 的 find() 方法可以传入多个键(key),每个键(key)以逗号隔开,即常规 SQL 的 AND 条件。

db.col.find({key1:value1, key2:value2}).pretty()
1

# OR 条件

MongoDB OR 条件语句使用了关键字 $or,语法格式如下:

db.col.find({$or:[{"by":"菜鸟教程"},{"title": "MongoDB 教程"}]}).pretty()
1

# AND 和 OR 联合使用

以下实例演示了 AND 和 OR 联合使用,类似常规 SQL 语句为: 'where likes>50 AND (by = '菜鸟教程' OR title = 'MongoDB 教程')'

db.col.find({"likes": {$gt:50}, $or: [{"by": "菜鸟教程"},{"title": "MongoDB 教程"}]}).pretty()
1

# 条件操作符

MongoDB中条件操作符有:

  • (>) 大于 - $gt
  • (<) 小于 - $lt
  • (>=) 大于等于 - $gte
  • (<= ) 小于等于 - $lte

示例:

db.col.find({likes : {$gt : 100}})
1

类似于SQL语句:

Select * from col where likes > 100;
1

# 排序

1 为升序排列,而 -1 是用于降序排列。

db.collection.find().sort({KEY:1})
1

# 索引

使用 createIndex() 方法来创建索引。

db.collection.createIndex(keys, options)
1

语法中 Key 值为你要创建的索引字段,1 为指定按升序创建索引,如果你想按降序来创建索引指定为 -1 即可。

db.col.createIndex({"title":1})
1

createIndex() 方法中你也可以设置使用多个字段创建索引(关系型数据库中称作复合索引)。

>db.col.createIndex({"title":1,"description":-1})
1
上次更新: 2024/09/27 10:53:32
最近更新
01
跨域的几种常见解决方案
04-03
02
react教程
03-01
03
前端抓包神器whistle
09-01