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

MongoDB基本操作(Windows)

时间:2024-06-14 09:30:15浏览次数:30  
标签: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>(可选):包含其他选项的文档,如upsertwriteConcern

升级语法
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基本操作的总结,希望对你有所帮助!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

相关文章

  • MongoDB副本集部署(windows)
    环境准备本教程演示mongodb4.4副本集部署(一主两从,伪分布式)节点配置主节点localhost:27017主节点1localhost:27018从节点2localhost:27019 每一个节点(实例)都创建对应的数据文件(data)和日志文件(log)。例如:动实例(服务)语法:bin>mongod-port端口号-dbpath数据路径-logpat......
  • linux+windows跨端md软件选择(未找到)
    目的windows上使用typora当初是通过破解的方式实现的。现在装双系统时想做做笔记,没有一个管理的软件用起来很不方便。要求正常编辑,没有难以忍受的问题。目录管理及大纲(基于标题层级)linux+windows双端,且linux端能够读取。从粘贴图片能够在相应的img目录下创建图片文件并引用......
  • C语言数据结构实现-静态链表2-基本操作
    上节,我们初步创建了一个静态链表,本节学习有关静态链表的一些基本操作,包括对表中数据元素的添加、删除、查找和更改。本节是建立在已能成功创建静态链表的基础上,因此我们继续使用上节中已建立好的静态链表学习本节内容,建立好的静态链表如图1所示:静态链表添加元素例如,在图1......
  • Windows系统 搭建 FFmpeg运行环境
    一、下载FFMPEG进入FFMPEG官网下载界面http://www.ffmpeg.org/download.html;选择Windows平台的"WindowsbuildsbyBtbN"下载选项,然后会跳转到GitHub的Release发布版本界面https://github.com/BtbN/FFmpeg-Builds/releases;在GitHub界面下载最近的......
  • ffmpeg推送音视频流、拉取音视频流 —— Windows
    一、压缩视频文件例如将input.mp4转码成output.avi。在Windows下,打开cmd,执行:ffmpeg-iinput.mp4output.aviffmpeg-iinput.mp4output.avi有很多参数可以指定,见ffmpeg官网。例如:ffmpeg-iinput.mp4-c:vlibx264-presetultrafast-b:v6000koutput.avi 其中,......
  • 用C++判断Windows是否锁屏
    点击查看代码#include"windows.h"#include"Windows.h"#include"Wtsapi32.h"#include<tchar.h>#pragmacomment(lib,"WtsApi32.lib")usingnamespacestd;typedefHDESK(WINAPI*PFNOPENDESKTOP)(LPSTR,DWORD,BOO......
  • 蓝牙BLE上位机工具开发理论线索梳理_1.Win32设备(Windows 属性系统)
    1.Windows属性系统     Windows属性系统是一个可扩展的数据定义读/写系统,它提供一种统一的方式来表达有关Shell项的元数据。WindowsVista及更高版本中的Windows属性系统使你能够存储和检索Shell项的元数据。Shell项是任何单个内容,例如文件、文件夹、电......
  • 单细胞RNA测序(scRNA-seq) 理解Seurat对象存储信息含义和基本操作
    单细胞测序技术是在单个细胞水平上,对基因组、转录组和表观基因组水平进行分析测序技术。bulkRNA-seq获得的是组织或器官等大量细胞中表达信号的均值,无法获取细胞之间的差异信息(即丢失了细胞的异质性),而单细胞测序技术可以很好的弥补bulkRNA-seq这一不足,即获取混合样本中......
  • usoclient命令 参数 是一个用于管理 Windows Update 的命令行工具,可以在 Windows 10
    usoclient是一个用于管理WindowsUpdate的命令行工具,可以在Windows10和WindowsServer操作系统中使用。它提供了一种在命令行界面下执行Windows更新任务的方法,从而允许管理员和技术支持人员以更灵活和自动化的方式处理更新。为什么使用 usoclient 命令?自动化更新......
  • SFC(System File Checker)是Windows操作系统中的一个实用程序,用于扫描和修复受损或丢失
    SFC(SystemFileChecker)是Windows操作系统中的一个实用程序,用于扫描和修复受损或丢失的系统文件。以下是一些常见的SFC命令及其用途:sfc/scannow描述:扫描所有受保护的系统文件,并尽可能修复文件。用法:在命令提示符(以管理员身份运行)中输入 sfc/scannow。sfc/verifyon......