首页 > 数据库 >MongoDB基本操作(Windows)

MongoDB基本操作(Windows)

时间:2024-06-17 20:01:39浏览次数:27  
标签:NAME Windows MongoDB 数据库 db 文档 集合 基本操作

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

掌握 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基本操作的介绍,希望对你有所帮助。

                       

标签:NAME,Windows,MongoDB,数据库,db,文档,集合,基本操作
From: https://blog.csdn.net/jangxin/article/details/139752735

相关文章

  • MongoDB分片部署(windows)
    【CSDN博客】MongoDB分片操作详解与实践OS:win10MongoDB:4.4.24伪分布式分片架构从图中可以看出,分片集群中主要由三个部分组成,即分片服务器(Shard)、路由服务器(Mongos)以及配置服务器(ConfigServer)组成。其中,分片服务器有三个,即Shard1、Shard2、Shard3;路由服务器......
  • 获取Windows设备CPUID信息
    CPUID目录简介代码实现基于C/C++的实现基于C#的代码实现基于Python的代码实现简介CPUID是一个CPU(中央处理器)的指令,用于获取处理器的详细信息。它通常用于操作系统、虚拟机监控程序(如虚拟机管理程序或超级监视器)、调试程序和性能分析工具等,来获取关于处理器硬件......
  • MongoDB 学习
    MongoDB简介MongoDB是一个文档数据库,但文档并不是一般理解的pdf,word文档,而是JSON对象,因为文档来自于“JSONDocument”(JSON文档),所以MongoDB是存JSON对象的数据库,比如{"greeting”:"helloworld"}。说起文档,想到的应该是JSON对象,所以文档中的键都是字符串,任何utf-8......
  • 安装、配置和使用AdGuard Home来实现家庭网络的广告和隐私保护;进一步深入学习和掌握Ad
    AdGuardHome是一个功能强大的网络广告拦截和隐私保护工具,它的底层原理涉及到多个方面的技术和工作原理。以下是关于AdGuardHome底层原理的概要:DNS拦截与过滤:AdGuardHome通过拦截DNS查询请求并返回虚假的响应来实现广告和恶意网站的过滤。它会拦截客户端设备发送的......
  • 高可用mongodb集群(分片+副本)
    参考网址:https://www.cnblogs.com/likingzi/p/16556734.html高可用mongodb集群(分片+副本):规划及部署概述mongodb是最常用的nosql数据库,以下记录如何搭建高可用mongodb集群(分片+副本)mongodb集群有三种模式:主从模式、副本集模式、sharding分片模式副本集和sharding分片模式是......
  • 自动更新功能windows和安卓(待完善)
    import'package:flutter/material.dart';//import'package:auto_updater/auto_updater.dart';voidmain()async{/*WidgetsFlutterBinding.ensureInitialized();StringfeedURL='https://weimaoer.github.io/updata.xml';a......
  • 处理问题:windows server 2016由于没有远程桌面授权服务器可以提供许可证,远程会话被中
      windowsserver可以多用户同时登陆,默认最大远程登录数量为2,如果有更多人需要同时远程登录,则需要安装远程桌面授权服务,第一次安装后,免费期为120天,超过则无法正常远程登录。解决办法如下:Windowsserver2016服务器远程桌面登录时出现错误提示:“由于没有远程桌面授权服务器......
  • Windows11系统Win32_EncryptableVolume.dll文件丢失问题
    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题,如果是新手第一时间会认为是软件或游戏出错了,其实并不是这样,其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库,这时你可以下载这个Win32_EncryptableVolume.dll文件(挑选合适......
  • Windows11系统webview2_integration.dll文件丢失问题
    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题,如果是新手第一时间会认为是软件或游戏出错了,其实并不是这样,其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库,这时你可以下载这个webview2_integration.dll文件(挑选合适的版......
  • Windows11系统webengine4.dll文件丢失问题
    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题,如果是新手第一时间会认为是软件或游戏出错了,其实并不是这样,其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库,这时你可以下载这个webengine4.dll文件(挑选合适的版本文件)把......