mongodb 数据库使用

配置

除了 compass(GUI工具) 安装在D盘,其他都默认安装路径。当前 mongodb 版本4.4.4 (2021-2-25)

  1. https://www.mongodb.com/download-center/community 安装社区版 mongodb server.
  2. https://www.mongodb.com/try/download/compass 安装 mongodb compass (可选).
  3. https://www.mongodb.com/try/download/database-tools 安装 mongodb tools.
  4. 将安装软件路径加入环境变量后,在 cmd 输入 mongo 即可使用。默认本地 host 路径:mongodb://127.0.0.1:27017/

使用

列出数据库
> show dbs
创建数据库(在use database之后会自动进入此数据库)
> use test_database
删除数据库
> db.dropDatabase()
创建集合
db.createCollection("test1")
删除集合
db.test1.drop()
插入文档 (插入文档的格式为json)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
db.test1.insertOne({title: "this is a test",
description: 'MongoDB is a Nosql database',
by: 'user',
tags: ['user', 'database', 'NoSQL'],
likes: 100
})
db.test1.insertMany([{title: "this is a test",
description: 'MongoDB is a Nosql database',
by: 'user',
tags: ['user', 'database', 'NoSQL'],
likes: 100
},
{title: "this is a test2",
description: 'mysql is a sql database',
by: 'user',
tags: ['user', 'database', 'SQL'],
likes: 99
}])

删除文档

1
2
db.test1.deleteOne({"title":"this is a test"}) #删除与过滤器匹配的第一个文档
db.test1.deleteMany({"title":"this is a test"}) #删除与过滤器匹配的所有文档

更新文档

1
2
3
4
5
6
7
8
9
10
11
db.test1.updateOne({"likes":100},[{$set:{"by":"seomeone"}}])  # {"likes":100}为查询条件,如更新范围为全部文档,则留空为{},{$set:{"by":"seomeone"}意义为将by字段内容修改为seomeone,如果没有by字段不做修改

db.test1.updateMany({"likes":100},[{$set:{"by":"seomeone"}}])
db.test1.updateMany({}, [{$unset:"by"}}]) #删除by字段
db.collection.updateMany(
<query>,
[
{ $set: { status: "Modified", comments: [ "$misc1", "$misc2" ] } },
{ $unset: [ "misc1", "misc2" ] }
]
) #官方格式

查询文档
$lt < $gt > $lte <= $gte >= $ne !=

1
2
3
4
5
6
7
8
9
10
11
12
db.test1.findOne().pretty()
db.test1.find().pretty()
db.test1.find({"likes":{$lt:50}})
db.test1.find({title:/^教/}) #正则
db.test1.find(<query>, {_id:0, title: 1, by: 1}) # 后面可加输出字段,0不输出,1输出
db.test1.find({"by":"someone", "title":"MongoDB"}) #and条件
db.test1.find( {
$or: [
{"by":"someone", "title":"MongoDB"}
]
}
) #or条件