首页 > 数据库 >MongoDB

MongoDB

时间:2023-07-23 15:34:31浏览次数:30  
标签:MongoDB db col 文档 pretty find

1.MongoDB入门

1.1 MongoDB简介

MongoDB是一个开源、高性能、无模式的文档型数据库。设计的目的是简化开发和方便扩展,是NOSQL数据库的一种,是最像关系型数据库的非关系型数据库。

MongoDB支持的数据结构非常松散,是一种类似于JSON格式名叫BSON,既可以存储比较复杂的数据类型,又相当灵活。

MongoDB中的数据是一个文档,是一个由字段和值对(field:value)组成的数据结构。MongoDB文档类似于JSON对象,既一个文档认为就是一个对象。字段的数据类型是字符型,值除了使用基本的一些类型外,还可以包括其他文档、普通数组和文档数组。

1.1.1 业务场景

如果应用场景有以下三点:

  • 数据量大

  • 读写操作频繁

  • 价值较低,对事务性要求不高的数据

可以使用MongoDB存储数据。

具体的应用场景如:

  • 社交场景,使用 MongoDB 存储存储用户信息,以及用户发表的朋友圈信息,通过地理位置索引实现附近的人、地点等功能。

  • 游戏场景,使用 MongoDB 存储游戏用户信息,用户的装备、积分等直接以内嵌文档的形式存储,方便查询、高效率存储和访问。

  • 物流场景,使用 MongoDB 存储订单信息,订单状态在运送过程中会不断更新,以 MongoDB 内嵌数组的形式来存储,一次查询就能将 订单所有的变更读取出来。

  • 物联网场景,使用 MongoDB 存储所有接入的智能设备信息,以及设备汇报的日志信息,并对这些信息进行多维度的分析。

  • 视频直播,使用 MongoDB 存储用户信息、点赞互动信息等。

1.1.2 体系结构

MySQL和MongoDB对比

image-20221028161457671

SQL术语/概念 MongoDB术语/概念 解释/说明
database database 数据库
table collection 数据库表/集合
row document 数据记录行/文档
column field 数据字段/域
index index 索引
table joins 表连接,MongoDB不支持
嵌入文档 MongoDB通过嵌入式文档代替多表连接
primary key primary key 主键.MongoDB自动将_id字段设置为主键

常见命令

数据库操作

show dbs:显示数据库列表

use :数据库不存在创建数据库,否则切换到指定的数据库。

查询文档

db.collection.find(query, projection)
  • query :可选,使用查询操作符指定查询条件

  • projection :可选,使用投影操作符指定返回的键。查询时返回文档中所有键值, 只需省略该参数即可(默认省略)。

要格式化显示结果的话,使用pretty() 方法。

db.col.find().pretty()

只返回特定的列,例如返回name的列:

db.col.find({}.name:1)

条件查询

操作 格式 范例 RDBMS中的类似语句
等于 {<key>:<value>} db.col.find({"by":"菜鸟教程"}).pretty() where by = '菜鸟教程'
小于 {<key>:{$lt:<value>}} db.col.find({"likes":{$lt:50}}).pretty() where likes < 50
小于或等于 {<key>:{$lte:<value>}} db.col.find({"likes":{$lte:50}}).pretty() where likes <= 50
大于 {<key>:{$gt:<value>}} db.col.find({"likes":{$gt:50}}).pretty() where likes > 50
大于或等于 {<key>:{$gte:<value>}} db.col.find({"likes":{$gte:50}}).pretty() where likes >= 50
不等于 {<key>:{$ne:<value>}} db.col.find({"likes":{$ne:50}}).pretty() where likes != 50

And条件:db.col.find({key1:value1, key2:value2}).pretty()

Or条件:

db.col.find(
   {
      $or: [
         {key1: value1}, {key2:value2}
      ]
   }
).pretty()

模糊查询

db.col.find(
   {key:/关键词/}
).pretty()

层级查询

db.col.find(
   {层级1.层级2.层级3:/关键词/}
).pretty()

就算某个层级是Array,也是只是输入层级字段名就可以。

统计个数

db.集合名称.find({条件}).count()

或者

db.集合名称.count({条件})

Limit和Skip方法

limit:读取指定数量的数据

skip:跳过指定数量的数据

标签:MongoDB,db,col,文档,pretty,find
From: https://www.cnblogs.com/1963942081zzx/p/17575063.html

相关文章

  • mongodb写入性能
    MongoDB写入性能优化作为一名经验丰富的开发者,我很高兴能够教会你如何实现MongoDB的写入性能优化。在这篇文章中,我将向你展示整个优化流程,并提供每一步所需的代码和相应的注释。优化流程下表展示了优化MongoDB写入性能的流程:步骤代码说明1.选择合适的索引db.collec......
  • mongodb随机获取数据
    MongoDB随机获取数据在MongoDB中,我们可以使用find方法来查找符合特定条件的文档。通常,我们会使用查询操作符来指定条件,例如相等、大于、小于等。但是,有时我们需要从数据库中随机获取一些数据。本文将介绍如何在MongoDB中实现随机获取数据的操作。随机获取单个文档要随机获取单个......
  • mongodb设置用户权限
    MongoDB设置用户权限MongoDB是一个非关系型数据库,它具有灵活的数据模型和高可扩展性。在开发和管理MongoDB数据库时,我们通常会涉及到设置用户权限的任务。用户权限的设置可以帮助我们确保数据的安全性,限制对数据库的访问和操作。用户角色和权限在MongoDB中,用户角色和权限是通过......
  • mongodb删除
    MongoDB删除数据MongoDB是一个开源的文档型数据库,具有高性能、高可扩展性和易用性的特点。在使用MongoDB时,删除数据是一个常见的操作。本文将向您介绍如何使用MongoDB进行数据删除,并提供相应的代码示例。连接到MongoDB首先,我们需要连接到MongoDB数据库。可以使用[MongoDB官方提......
  • mongodb更新字段的值
    MongoDB更新字段的值作为一名经验丰富的开发者,你需要教会一位刚入行的小白如何在MongoDB中更新字段的值。在本文中,我将向你展示整个更新字段的流程,并提供每一步所需的代码和注释。更新字段的流程下面是更新字段的流程。你可以使用表格来展示这些步骤。步骤描述步骤......
  • mongodb副本集原理
    MongoDB副本集原理概述副本集是MongoDB中高可用性和数据冗余的解决方案。它通过将数据复制到多个服务器上来保证数据的可用性和安全性。当主服务器发生故障时,副本集会自动选举一个新的主服务器来继续提供服务。流程以下是实现MongoDB副本集的基本步骤:步骤描述1.配置......
  • mongodb的索引是B还是B+
    MongoDB索引的选择:B树还是B+树简介在MongoDB中,索引是用来提高查询性能的重要工具。MongoDB支持多种类型的索引,其中最常用的是B树索引和B+树索引。在选择使用哪种索引类型时,需要考虑数据的特点和查询需求。本文将介绍如何在MongoDB中选择使用B树还是B+树索引,并提供相应的代码示例......
  • mongodb查询语句
    MongoDB查询语句简介MongoDB是一种流行的文档型数据库,它以JSON格式存储数据,并使用BSON(BinaryJSON)作为其内部数据表示。在MongoDB中,我们可以使用查询语句来检索和操作数据。本文将介绍一些常用的MongoDB查询语句,以及如何在代码中使用它们。连接到MongoDB首先,我们需要在代码中连......
  • mongodb查询内容数据解析
    MongoDB查询内容数据解析MongoDB是一个开源的NoSQL数据库,广泛用于存储和操作大量的非结构化数据。在MongoDB中,查询是非常重要的操作,它allowsuserstoretrievedatabasedonspecificcriteriaorconditions.本文将介绍MongoDB中查询内容数据的基本概念、语法和示例。基本概......
  • mongodb查看当前是否是主节点命令
    MongoDB查看当前是否是主节点命令在使用MongoDB进行分布式部署时,了解当前节点是否是主节点非常重要。主节点负责处理所有写操作,并且协调整个复制集的工作。幸运的是,MongoDB提供了一些简单的命令来查看当前节点的角色。使用rs.isMaster()命令要查看当前节点是否是主节点,可以使用r......