MongoDB基本操作(Windows)

本篇博文介绍
知识目标    熟悉数据库和集合操作
本篇目标    

掌握 MongoDB 的部署

掌握文档的插入、更新、删除以及查询操作
一、MongoDB的安装部署

在浏览器输入网址:www.mongodb.com

2. 点击“TRY FREE”或“GET STARTED”按钮,进入 MongoDB 的下载页面;

3. 在下载页面中,选择适合操作系统的版本。MongoDB 支持各种操作系统,包括 Windows、Linux 和 macOS;

4. 点击下载按钮开始下载 MongoDB 的安装文件;

5. 下载完成后,可以开始安装 MongoDB。

选择软件版本、电脑对应的应用系统、安装包形式,选择完毕点击安装即可。

安装的时候推荐大家选择自定义安装,选择安装位置,这里推荐大家安装除C盘以外的盘。

这里不安装可视化工具,把勾给取消掉。

安装完后打开任务管理器查看MongoDB是否正在运行。

随后打开软件安装位置复制安装路径

打开环境变量点系统变量的编辑

新建把复制的安装路径添加进去,点击确定

接下来Win键+R打开cmd,输入mongo回车

回车和上图一样那MongoDB就安装完成了。

二、数据库操作
新建数据库

语法:

use DATABASE_NAME

use:用于切换/创建数据库,若不存在则创建,否则切换到指定数据库。

DATABASE_NAME:数据库名称。

执行use articledb命令,创建数据库articledb。

 
查看数据库

语法:查看全部数据库

show dbs

或者查看当前数据库,需要先切换到指定数据库

db

删除数据库

语法

db.dropDatabase()

db:表示当前数据库对象。

dropDatabase():用于删除当前数据库的方法。

删除当前数据库,执行命令前应使用use命令切换到要删除的数据库,为了防止误删可执行命令db验证当前数据库是否为指定删除的数据库。

三、集合操作
创建集合

语法

        显示创建

db.createCollection(COLLECTION_NAME,[OPTIONS])

隐式创建

db.COLLECTION_NAME.INSERT(DOCUMENT)

db:表示当前数据库对象。

createCollection():创建集合方法。

DOCUMENT表示文档。

COLLECTION_NAME表示集合名称。

OPTIONS表示集合配置。

insert():向集合中插入文档的方法。

例子:

执行"db.createCollection("myCollection")"命令,显式创建集合myCollection。执行"show collections"命令,查看是否成功创建集合。

删除集合

语法

db.COLLECTION_NAME.drop()

db:表示当前数据库对象。

COLLECTION_NAME:表示集合名称。

drop():删除集合方法。

例子:

执行"db.myCollection.drop()"命令,删除集合myCollection。

 
四、文档操作
文档插入

语法(单文档插入)

db.COLLECTION_NAME.insert(document)

或者

db.COLLECTION_NAME.save(document)

语法(多文档插入)

db.COLLECTION_NAME.insertMany([document1,document2,...])

db:当前数据库对象

COLLECTION_NAME:当前集合对象。

insert()和save():插入单文档方法。

insertMany():插入多文档方法。

insert()和save()方法的区别在于,若使用insert()方法插入文档时,集合中已存在该文档,则会报错。若使用save()方法插入文档时,集合中已存在该文档,则会覆盖。

例子:

1、执行"use test"命令,创建并切换到数据库test。

2、隐式创建集合c1并插入文档。命令如下:

  

  db.c1.insert(  
        {  
            "articleid":"100000",  
            "content":"今天天气真好,阳光明媚",  
            "userid":"1001",  
            "nickname":"Rose",  
            "age":"20",  
            "phone":"18807141995",  
            "createdatetime": new Date(), // 注意这里使用 new Date() 而不是 new Data()  
            "likenum":NumberInt(10),  
            "state":null  
        }  
    )

3、执行"db.c1.find()"命令,查看集合comment中的文档。

4、向集合comment中插入多文档,命令如下。

db.comment.insertMany([{documet1},{documet2},{documet3}])

例子:

文档更新

语法

db.COLLECTION_NAME.update(criteria,objNew,upsert,multi)

db:当前数据库对象。
COLLECTION NAME:当前集合对象。
update():更新文档方法。
criteria:更新的查询条件,类似sql中的where。
objNew:新的对象和操作符,类似sql中的set。
upsert:不存在更新对象时,是否插入,默认为false
multi:默认为false,只更新查找到的第一个文档,反之更新所有。

例子
将键contect的值由“喝水是生命体通过口腔摄入水分的方式,人体每天通过口腔摄入的液体大约有#
升"更新为“喝水增加了尿量,能使有害物质及时排出体内”,具体命令如下。

    db.c1.updateMany(  
      { "content": "喝水是生命体通过口腔摄入水分的方式,人体每天通过口腔摄入的液体大约有2升" },  
      { $set: { "content": "喝水增加了尿量,能使有害物质及时排出体内" } }  
    )

 
升级语法

db.集合名.update (条件,新数据){修改器:{键:值}}

修改器    作用
$inc    递增     
$rename    重命名列
$set    修改列值
$unset    删除列

案例说明
准备工作:创建c2集合,循环插入文档数据

    for(var i = 1; i <= 10; i++){  
        db.c2.insert({  
            "uname": "ab" + i,  
            "age": i  
        });  
    }

 
文档删除

语法(删除单个)

   

db.COLLECTION_NAME.remove(
       <query>,
       {
         justOne:<boolean>,
         writeconcern:<document>
       }
    )

 删除全部文档

db. COLLECTION_NAME.remove({})

 db:当前数据库对象。
COLLECTION_ NAME:当前集合对象。
remove():删除文档方法。
query:删除文档的条件,可选参数。
justone:的boolean为true或1时,表示只删除查询出的第一个文档
writeConcern:表示抛出异常级别。
文档简单查询

查询所有文档语法

db.COLLECTION_NAME. Find()

 查询所有文档,以易读的方式展示

db.COLLECTION_NAME. Find().pretty()

db:当前数据库对象
COLLECTION NAME:当前集合对象
find():查询所有文档方法
pretty():格式化查询返回结果

按条件查询文档
基础语法:db.集合名.find(条件[查询的列])
条件


查询所有数据{}或者不写
查询age=6的数据 {age:63}
既要age-6又要性别=男{age:6,sex:'男'}
查询的列(可选参数
不写-这查询全部列(字段
{age:1}只显示age列(字段
{age:0}除了age列(字段都显示
留心:不管你怎么写系统自定义的_id都会在

例子
查询age为4,只显示它的姓名;

升级语法

    db.集合名.find({键:值})注:值不直接写
    {运算符:值}
    db.集合名.find({
    键:{运算符:值}
    })

例子

1.查询年龄大于6岁的数据

    db.c2.find({  
        age: { $gte: 6 }  
    })


2.查询年龄是8岁、9岁、10岁的数据

    db.c2.find({  
        age: { $in: [8, 9, 10] }  
    })

文档总结
db.集合名.insert(JSON数据)
db.集合名.remove(条件[,是否删除一条true是false否默认])
也就是默认删除多条
db.集合名.update(条件,新数据[,是否新增,是否修改多条])

概念:
updateMany是MongoDB(或某些MongoDB库,如Mongoose)中的一个方法,用于一次性更新多个符合特定条件的文档。

用法:

    语法结构:db.collection.updateMany(<filter>, <update>, <options>)
        <filter>:查询条件,指定需要更新的文档。
        <update>:更新操作,指定更新的内容。
        <options>(可选):包含其他选项的文档,如upsert和writeConcern。

升级语法
db.集合名.update(条件,{修改器:{键:值}})
db.集合名.find(条件[,查询的列])

本篇总结
MongoDB是一种流行的NoSQL数据库管理系统,它以其灵活的数据模型和高性能而闻名。以下是MongoDB基本操作的总结:

1. 连接数据库:
   - 使用命令行工具或客户端连接到MongoDB数据库。
   - 在命令行中使用`mongo`命令来连接本地数据库,默认端口为27017。

2. 创建数据库:
   - MongoDB中的数据库不需要预先创建,当你插入第一条数据时,如果指定的数据库不存在,MongoDB会自动创建该数据库。

3. 切换数据库:
   - 使用`use <database_name>`命令来切换到指定的数据库。

4. 创建集合:
   - 使用`db.createCollection('<collection_name>')`命令在当前数据库中创建一个新的集合。

5. 插入文档:
   - 使用`db.<collection_name>.insertOne(<document>)`或`db.<collection_name>.insertMany([<document1>, <document2>, ...])`来插入一个或多个文档到集合中。

6. 查询文档:
   - 使用`db.<collection_name>.find(<query>)`来查询符合条件的文档。
   - 可以添加条件、投影、排序等选项来进一步筛选和排序结果。

7. 更新文档:
   - 使用`db.<collection_name>.updateOne(<filter>, <update>)`或`db.<collection_name>.updateMany(<filter>, <update>)`来更新符合条件的文档。

8. 删除文档:
   - 使用`db.<collection_name>.deleteOne(<filter>)`或`db.<collection_name>.deleteMany(<filter>)`来删除符合条件的文档。

9.备份与恢复:

可以使用mongodump和mongorestore命令进行备份和恢复MongoDB数据库。


10.安全性:

设置适当的用户权限和身份验证是保护MongoDB数据安全的重要手段。可以通过创建用户并设置角色权限来实现安全访问控制。

注意事项

  • MongoDB中的文档结构灵活,类似于JSON格式的数据,易于表示复杂的数据类型。
  • 集合中的文档可以有不同的结构,但通常为了查询和管理方便,会尽量保持文档结构的一致性。
  • MongoDB的更新操作是原子性的,即在一个文档的多个字段上的操作要么全部成功,要么全部失败。

以上就是对MongoDB基本操作的介绍,希望对你有所帮助。

                       

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值