解读MongoDB官方文档获取mongo7.0版本的安装步骤与基本使用

这篇具有很好参考价值的文章主要介绍了解读MongoDB官方文档获取mongo7.0版本的安装步骤与基本使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

mongo式一款NOSQL数据库,用于存储非结构化数据,mongo是一种用于存储json的数据数据,可以通过mongo提供的命令解析json获取想要的值。

数据模型

了解关系数据库会很熟悉database,table,row,column的概念,分别是数据库,表,行,列所组成的二维表,而在mongo中没有存储的是json,在新的数据模型中主要数据模型有db(数据库),collection(集合),document(文档),field(属性)。

解读MongoDB官方文档获取mongo7.0版本的安装步骤与基本使用,数据库,mongodb,数据库

在mongo中一个db数据库存储多个collection;一个collection的结构如下:

// collection
{
  "userId": 1,
  "id": 1,
  "title": "delectus aut autem1",
  "completed": false
}
{
  "userId": 2,
  "id": 2,
  "title": "delectus aut autem2",
  "completed": false
}

而每一个结构就是一个document(文档):

{
  "userId": 2,
  "id": 2,
  "title": "delectus aut autem2",
  "completed": false
}

其中的userId,id等都是field(属性)。

安装

  1. 主机安装

Ubuntu官方安装文档

依次按照官网的命令执行就可以了

解读MongoDB官方文档获取mongo7.0版本的安装步骤与基本使用,数据库,mongodb,数据库

左侧可以选安装版本,尽量别选最新的哈,小编在主机上安装时遇到了一些问题导致主机安装未成功。(推荐使用docker 安装)

解读MongoDB官方文档获取mongo7.0版本的安装步骤与基本使用,数据库,mongodb,数据库

安装完之后,还需要安装mongo shell用于与mongo server交互,通过命令行的方式操作数据官方下载地址。

mongo shell docs

如果安装没有修改配置文件使用mongosh会自动连接mongdb://localhost:27017,如果修改了配置文件或者端口使用mongosh "mongodb://localhost:27017"编辑端口即可。

解读MongoDB官方文档获取mongo7.0版本的安装步骤与基本使用,数据库,mongodb,数据库

mongo会链接一个默认的数据库。

除了使用mongo shell外还可以使用mongo compass GUI工具,下载地址

解读MongoDB官方文档获取mongo7.0版本的安装步骤与基本使用,数据库,mongodb,数据库mongo compass 内部也集成来mongo sh在左下角
解读MongoDB官方文档获取mongo7.0版本的安装步骤与基本使用,数据库,mongodb,数据库

  1. docker安装
docker pull mongo

docker run --name mongo -id -P mongo

使用docker安装看起来要方便很多,安装成功映射到主机端口和mongo shell和mongo compass是一样的。

命令行操作

CURD

通过mongo shell是直接的操作方式,具体的CURD操作如下:

插入

db.collection.insertOne()
db.collection.insertMany()

解读MongoDB官方文档获取mongo7.0版本的安装步骤与基本使用,数据库,mongodb,数据库

解读MongoDB官方文档获取mongo7.0版本的安装步骤与基本使用,数据库,mongodb,数据库

解读MongoDB官方文档获取mongo7.0版本的安装步骤与基本使用,数据库,mongodb,数据库>除了上述插入方式外还可以借助mongo compass 导入csv等数据。

更新数据

解读MongoDB官方文档获取mongo7.0版本的安装步骤与基本使用,数据库,mongodb,数据库
更新有三个参数,分别是过滤器,更新内容,条件

db.inventory.updateOne(
   { item: "paper" },
   {
     $set: { "size.uom": "cm", status: "P" },
     $currentDate: { lastModified: true }
   }
)

$set关键字用于更新具体内容,$currentDate 关键字用于把lastModified字段设置为最近修改时间,没有该字段就创建。

第一个参数是条件,可以使用比较计算符。

删除数据

解读MongoDB官方文档获取mongo7.0版本的安装步骤与基本使用,数据库,mongodb,数据库

db.inventory.deleteMany({ status : "A" })

删除也是匹配删除。

db.inventory.deleteOne( { status: "D" } )

删除一个。

比较关键字都可以使用。

命令行查找

db.collection.find()

查询所有

解读MongoDB官方文档获取mongo7.0版本的安装步骤与基本使用,数据库,mongodb,数据库

inventory是collection名,test是数据库名,_id是每个collecttion的标识。

精确匹配

find内部可以使用{ <field1>: <value1>, ... }表示查询条件。

解读MongoDB官方文档获取mongo7.0版本的安装步骤与基本使用,数据库,mongodb,数据库

find会查询所有的document找出filed匹配的项。{}不使用关键字的情况下就是json数据,该方法就是查询与其一直的数据。

IN查询

db.inventory.find( { status: { $in: [ "A", "D" ] } } )

解读MongoDB官方文档获取mongo7.0版本的安装步骤与基本使用,数据库,mongodb,数据库

in可以使用or 替换

AND查询

解读MongoDB官方文档获取mongo7.0版本的安装步骤与基本使用,数据库,mongodb,数据库

条件一起写就是and

比较查询

$lt<

模糊查询$regex

$regex是like。

$regex: '^p'为前缀查询,^起前后缀作用。

  • 阶级查询

当然比较的关键字还有很多,后续会介绍。这里介绍另一种查询方法.field.nestedField

db.inventory.find( { "size.uom": "in" } )

# 等价
db.inventory.find(  { size: { w: 21, h: 14, uom: "cm" } }  ) # 不好写

这种方式使用多级阶层的查询。

匹配列表

Json的valu也是支持数组的,也需要匹配列表查询。

精确匹配

解读MongoDB官方文档获取mongo7.0版本的安装步骤与基本使用,数据库,mongodb,数据库

只能拥有查询的列表元素。

子集匹配$all

db.inventory.find( { tags: { $all: ["gel"] } } )

解读MongoDB官方文档获取mongo7.0版本的安装步骤与基本使用,数据库,mongodb,数据库

只要拥有查询条件的列表元素即可,即查询条件是数据的子集。

单元素查询

db.inventory.find( { tags: "red" } )

查询条件没有列表只有一个元素,所有包含该元素的的数据都会被查询出来。

列表过滤查询
# dim_nml类型为[ 10, 15.25 ]
# 查找小于25的
db.inventory.find( { dim_cm: { $gt: 25 } } )


# db.inventory.find( { dim_cm: { $gt: 15, $lt: 20 } } )
db.inventory.find( { dim_cm: { $gt: 15, $lt: 20 } } )

# $elemMatch关键字用于多条件查询
db.inventory.find( { dim_cm: { $elemMatch: { $gt: 22, $lt: 30 } } } )

在列表中也可以使用比较关键字,用于过滤。

列表索引查询

db.inventory.find( { "dim_cm.1": { $gt: 25 } } )

.1是列表的索引条件,$gt是比较条件

列表长度查询

db.inventory.find( { "tags": { $size: 3 } } )

$size关键字表示列表长度,长度为3的将被查询出来。

列表中json元素查询
db.inventory.insertMany( [
   { item: "journal", instock: [ { warehouse: "A", qty: 5 }, { warehouse: "C", qty: 15 } ] },
   { item: "notebook", instock: [ { warehouse: "C", qty: 5 } ] },
   { item: "paper", instock: [ { warehouse: "A", qty: 60 }, { warehouse: "B", qty: 15 } ] },
   { item: "planner", instock: [ { warehouse: "A", qty: 40 }, { warehouse: "B", qty: 5 } ] },
   { item: "postcard", instock: [ { warehouse: "B", qty: 15 }, { warehouse: "C", qty: 35 } ] }
]);

该数据列表的数据元素也为json。

db.inventory.find( { "instock": { warehouse: "A", qty: 5 } } )

如果列表内部也是json元素,把列表当做一个document处理即可。

指定返回字段查询

直接使用find加条件查询返回所有field。在查询条件后可添加json字段返回指定字段。

db.inventory.find( { status: "A" }, { item: 1, status: 1 } )

解读MongoDB官方文档获取mongo7.0版本的安装步骤与基本使用,数据库,mongodb,数据库甚至可以隐藏掉_id

db.inventory.find( { status: "A" }, { item: 1, status: 1, _id: 0 } )

可以看出1是显示,0是隐藏。

也可以反着用,排除返回
db.inventory.find( { status: "A" }, { status: 0, instock: 0 } )

多层次结构也要使用.来构造

db.inventory.find( { status: "A" }, { item: 1, status: 1, "size.uom": 1 } )

存在数组的查询也是如此

shell db.inventory.find( { status: "A" }, { item: 1, status: 1, "instock.qty": 1 } )

也可以同时使用比较查询

db.inventory.find( { status: "A" }, { item: 1, status: 1, instock: { $slice: -1 } } )

空值查询

mongo提供了null关键字用于空值查询。

db.inventory.insertMany([
   {  item: null },
])

空值比较查询

db.inventory.find( { item: { $ne : null } } )

有兴趣的话可以了解下$type$exists关键字。

官方方法集合

上述只是介绍了一部分常用的方法,更多一步官方方法集合

包含数据库方法,查询,删除,更新等方法。

解读MongoDB官方文档获取mongo7.0版本的安装步骤与基本使用,数据库,mongodb,数据库文章来源地址https://www.toymoban.com/news/detail-853123.html

到了这里,关于解读MongoDB官方文档获取mongo7.0版本的安装步骤与基本使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【数据库MongoDB】MongoDB与大数据关系以及MongoDB中重要的进程:mongod进程与mongo进程关系

    云计算的定义有多种说法,对于到底什么是云计算,我们至少可以找到100种解释。目前广为接受的是美国国家标准与技术研究院定义: 云计算是一种按使用量付费的模式,这种模式提供可用的、便捷的、按需的网络访问,进入可配置的计算资源共享池(资源包括网络、服务器

    2024年02月02日
    浏览(70)
  • MongoDB:记一次生产环境中mongo出现的严重出错与排查解决

    造成此种错误的原因有如下几种常见情况: * 系统磁盘已满导致mongo无法向文件系统写数据。 * 系统突然死机(或系统重启)造成mongo文件系统被损坏。 * 使用非正当方法强制停止mongo服务,如:kill -1/-9的方式。 * mongo文件系统遭篡改。 还有很多种原因............ 启动mongod失败

    2023年04月14日
    浏览(74)
  • [JAVA版本] 最新websocket获取B站直播弹幕——非官方API

    如果只想要代码实现,直接看第二部分。 fastjson2用于解析JSON字符串 ,可自行替换成别的框架。 hutool-core用于解压zip数据 ,可自行替换成别的框架。 2023年9月B站如果不登录,获取到的弹幕消息是经过脱敏的,获取不到用户名和用户ID。 获取方式: 电脑浏览器登录B站,按F1

    2024年02月19日
    浏览(47)
  • MongoDB Compass当前版本及历史版本下载安装

    官网 https://www.mongodb.com/try/download/compass 官网下载一般只能下载最新版本。 github https://github.com/mongodb-js/compass MongoDB Compass MongoDB 1.9.12 MongoDB 2.6.11 Community

    2024年01月19日
    浏览(38)
  • 开源预训练框架 MMPRETRAIN官方文档(概览、环境安装与验证、基础用户指南)

    MMPretrain是全新升级的开源预训练框架。它已着手提供多个强大的预训练骨干网并支持不同的预训练策略。MMPretrain 源自著名的开源项目 MMClassification 和MMSelfSup,并开发了许多令人兴奋的新功能。目前,预训练阶段对于视觉识别至关重要。凭借丰富而强大的预训练模型,我们目

    2024年02月13日
    浏览(56)
  • ubuntu 安装微信(微信官方版本)

    首先,说明一下我在ubuntu20.04LTS上安装微信的经历,我在网上(主要是csdn)看了很多安装方法,包括直接安装wechat,安装deepin版本的wechat,要么是不能运行,要么是很不好用。最后,找到了好用的微信,希望和大家一起分享。 补充:现在微信只发布了ukylin(优麒麟)上的版本

    2024年02月21日
    浏览(52)
  • 记录连接mongo突然出现:Cannot connect to MongoDB. No suitable servers founderverSelection TimeoutMS神奇解决方法

    之前使用mongo好好的,今天打开mongo,突然出现了一个异常,怎么也连不上服务器。。。 Cannot connect to MongoDB. No suitable servers found: serverSelectionTimeoutMS expired: [connection timeout calling ismaster on ‘xxxxxxxxxxx:9800’] 排查一:查看mongo服务发现服务正常,排除服务没有出现异常 排查二:查

    2024年02月11日
    浏览(56)
  • Docker官方文档学习笔记(一):安装Docker Engine(和安装Docker Desktop for Linux二选一)

    参考官方文档 /var/lib/docker 中的内容会被保留,如果要完全删除,继续参考文章最后的卸载教程完成卸载 三种方法,通过仓库安装(推荐),通过DEB包手动安装,以及使用脚本安装。 在安装之前,请让自己熟悉脚本安装的潜在风险和限制: 该脚本需要root或sudo特权才能运行。

    2024年02月12日
    浏览(41)
  • Linux:mongodb数据库源码包安装(4.4.25版本)

    系统:centos7 本机ip:192.168.254.1 准备的mongodb包  版本 : 4.4.25      全名称:mongodb-linux-x86_64-rhel70-4.4.25.tgz Download MongoDB Community Server | MongoDB https://www.mongodb.com/try/download/community  我这里演示的系统为centos7那么我就下载centos7的源码包 点击下载以后, 放入Linux中  同一时间最多

    2024年02月07日
    浏览(60)
  • Docker官方文档学习笔记(一):安装、升级、卸载Docker Desktop for Linux(和安装Docker Engine二选一,推荐Docker Engine)

    参考自官方文档Install Docker Desktop on Linux和Install Docker Desktop on Ubuntu 本教程所用系统为Ubuntu22.04 对新手来说有个图形化界面还是挺方便的,可以装上跟着学习笔记(二)熟悉Docker,我是练完手之后卸载了Docker Desktop转而装了Docker Engine,因为当时发现DD4L好像不支持容器内运行图

    2024年02月10日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包