首页 > 数据库 >MongoDB 入门

MongoDB 入门

时间:2023-09-08 20:46:50浏览次数:80  
标签:入门 MongoDB age db 查询 18 find users

0x01 概述

  • MongoDB 是一个基于分布式文件存储的开源数据库,由 C++ 语言编写,提供了一个可扩展的高性能数据存储解决方案

  • MongoDB 是一个文档型数据库,属于非关系型数据库(NoSQL)的一种,其数据是以文档的形式来存储的

    • 文档(Document)在 MongoDB 中是一个非常重要的概念,类似 MySQL 中的“行”,数据格式是 Binary JSON(简称 BSON)
    • 数据库是由一个个的集合组成的,类似 MySQL 中的“表”,包括多个文档

    MongoDB 与 MySQL 的对比

    MongoDB MySQL
    数据库(database) 数据库(database)
    集合(collection) 表(table)
    文档(document) 行(row)
    字段(field) 列(column)
    索引(index) 索引(index)
    _id 主键
    $lookup join
    $group group by

0x02 安装配置

(1)Windows

  • 官网下载安装包进行安装

(2)Mac

  1. 方法一:同 Windows 下载安装包并安装

  2. 方法二:在终端执行以下命令

    brew install mongodb-atlas
    atlas setup
    

(3)VSCode 插件

  • 搜索“MongoDB for VS Code”并安装
  • 创建连接并设置地址:mongodb://localhost:27017

(4)官方工具

a. GUI 工具

官网下载

b. MongoShell

官网下载

0x03 常用命令

在 Mongo Shell 中进行操作

  • help:查看帮助
  • cls:清屏

(1)创建数据库 / 集合

  • show databases/show dbs:查看当前数据库
    • 当真正开始插入数据时,数据库才会被创建
  • use [database_name]:切换数据库
  • db.[collection_name]:创建集合
    • 例:创建集合 users:db.user
    • 数据保存在集合中,增删改查时需要指定集合,以下内容以对 users 集合进行操作为例

(2)插入数据

  • db.users.insertOne({name: "Alex", age: 18}):插入一条数据到指定集合中

    • 执行该插入命令后,MongoDB 会返回以下内容:

      {
          acknowledged: true,
          insertedId: ObjectId("xxx")
      }
      

      其中,acknowledged 表示是否插入成功,insertedId 表示数据的 id(此 id 可看作 MySQL 中的主键)

  • db.users.insertMany([{name: "Bob"}, {name: "Clarlie"}]):插入一条数据到指定集合中

(3)查询数据

  • db.users.find():查看指定集合中的全部数据
    • db.users.find().limit(x):限制查询返回结果的数量为 x
    • db.users.find().sort({_id: 1, age: -1}):对查询返回结果按_id字段和age字段进行排序,1表示升序,-1表示降序
    • db.users.find().sort({age: 1}).skip(1):跳过查询返回的第一条结果
      • 一般 skip() 常与 sort() 配合使用,从而实现分页的效果
  • db.users.find({age: 18}):条件查询,查询 age 字段值为 18 的结果
    • db.users.find({age: 18}, {name: 1, _id: 0}):查询 age 字段值为 18 的结果并仅返回对应的 name 字段值
    • db.users.find({age: 18}, {name: 0}):查询 age 字段值为 18 的结果并返回除 name 之外其他所有字段值
  • db.users.find({age: {$gt: 18}}):比较查询,查询 age 字段值大于 18 的结果
    • $eq:等于
    • $gt:大于
    • $gte:大于等于
    • $lt:小于
    • $lte:小于等于
  • db.users.find({age: {$in: [18, 20]}}):多条件查询,查询 age 字段值为 18 或 20 的结果
    • $nin:表示 not in 的意思
  • db.users.find({sex: {$exists: true}}):存在性查询,查询存在 sex 字段的文档
    • true=1false=0
    • 仅查询字段是否存在,不能查询字段值是否存在
  • db.users.find({age: {$and: [{$gte: 18}, {$lte: 20}]}}):逻辑查询,查询 age 字段值大于等于 18 小于等于 20 的结果
    • $and:逻辑与
    • $or:逻辑或
    • $not:逻辑非
  • db.users.find({name: {$regex: /张/}}):正则查询,查询 name 字段含“张”的结果
  • db.users.findOne({age: 18}):查询满足条件的一条数据

(4)更新数据

  • db.users.updateOne({age: 1}, {$set: {sex: null}}):更新满足条件的一条数据
  • db.users.updateMany():更新满足条件的多条数据

(5)删除数据

  • db.users.deleteOne({age: 1}):删除满足条件的一条数据
  • db.users.deleteMany():删除,满足条件的多条数据

(6)聚合函数

  • db.users.countDocuments():统计文档数量,在括号中可传入条件,同 find()

-End-

标签:入门,MongoDB,age,db,查询,18,find,users
From: https://www.cnblogs.com/SRIGT/p/17688498.html

相关文章

  • 项目管理工具----普加项目管理中间件(PlusProject )入门教程(10):数据加载
    普加项目管理中间件是用于跨浏览器和跨平台应用程序的功能齐全的Gantt图表,可满足项目管理应用程序的所有需求,是最完善的甘特图图表库。PlusProject提供了加载json数据方式来显示。规定的数据格式如下:{ UID:100, Name:'ProjectName', StartDate:'2007-01-01T08:00:00', Fin......
  • 项目管理工具----普加项目管理中间件(PlusProject )入门教程(11):msProject项目的导入和导
    普加项目管理中间件是用于跨浏览器和跨平台应用程序的功能齐全的Gantt图表,可满足项目管理应用程序的所有需求,是最完善的甘特图图表库。.net下可以导入xml和.mpp,微软提供了Microsoft.Office.Interop.MSProject.dll,可以将mpp文件转换成xml格式,我们提供了Plusoft.dll对xml文件进行了......
  • 项目管理工具----普加项目管理中间件(PlusProject )入门教程(11):msProject项目的导入和导
    普加项目管理中间件是用于跨浏览器和跨平台应用程序的功能齐全的Gantt图表,可满足项目管理应用程序的所有需求,是最完善的甘特图图表库。同样普加项目管理中间件提供了导出方法,可以导出XML格式的文件,这个文件可以在微软project中直接打开展示。varwin=newPlusProject.ExportPro......
  • 项目管理工具----普加项目管理中间件(PlusProject )入门教程(12):前锋线
    普加项目管理中间件是用于跨浏览器和跨平台应用程序的功能齐全的Gantt图表,可满足项目管理应用程序的所有需求,是最完善的甘特图图表库。前锋线,是指从检查时刻的时标点出发,用点划线依次将各项工作实际进展位置点连接而成的折线。通过实际进度前锋线与原进度计划中各工作箭线交点的......
  • 项目管理工具----普加项目管理中间件(PlusProject )入门教程(11):msProject项目的导入和导
    普加项目管理中间件是用于跨浏览器和跨平台应用程序的功能齐全的Gantt图表,可满足项目管理应用程序的所有需求,是最完善的甘特图图表库。除了上文介绍的加载json数据的方式展示外,更常用的方式是导入。普加项目管理中间件支持导入微软project两种格式的文件,xml和mpp,这里的文件解析都......
  • 常见python工具的基本构造-入门
    一、常见库exifread读取图片中的信息,如GPS信息https://blog.csdn.net/qq1198768105/article/details/128159598tkinter创建窗口程序信息弹窗https://www.jb51.net/article/241488.htm布局https://www.cnblogs.com/weidawang/p/15426468.htmlcsv创建,增加csv文件os读......
  • Android入门教程 | res资源目录简介与shape的绘制和使用
    res资源目录简介简单介绍Android工程中的资源目录(resources),res。Android里的资源指的是什么?资源是指代码使用的附加文件和静态内容,例如位图、布局定义、界面字符串、动画说明等。把资源放进对应的目录后,可使用在项目R类中生成的资源ID来访问这些资源。形如R.drawable.icon,R.la......
  • MongoDB使用场景
    MongoDB是一个面向文档的数据库,它将数据存储为JSON格式的文档。MongoDB具有以下特点:灵活的数据模型:MongoDB的数据模型是面向文档的,文档可以包含任意字段,无需事先定义数据结构。这使得MongoDB非常适合存储非结构化或半结构化的数据。强大的查询能力:MongoDB提供了丰富的......
  • 循环冗余校验(CRC)算法入门引导
    写给嵌入式程序员的循环冗余校验(CRC)算法入门引导前言CRC校验(循环冗余校验)是数据通讯中最常采用的校验方式。在嵌入式软件开发中,经常要用到CRC算法对各种数据进行校验。因此,掌握基本的CRC算法应是嵌入式程序员的基本技能。可是,我认识的嵌入式程序员中能真正掌握CRC算法的人却很少,......
  • 《Linux从入门到精通》(第2版 刘忆智 等著) 学习感受
    这本书确实是一本非常基础的入门书籍,网上评价比较高,但是它的内容是否真的有那么好,我感觉也就那样了,毕竟是非常基础的书籍,怎么写也很难写出花来。对于基本的使用不同的书籍描述应该也差不多(我没有认真看过其他书籍......