MongoDB Shell基本操作(二) - 查询

MongoDB实战 – 用MongoDB Shell访问MongoDB数据库 MongoDB Shell用来连接和使用MongoDB,是最快捷的方式;用户可以使用Mongo Shell查询和更新数据以及执行管理操作。 Mongo Shell作为MongoDB Server安装的一部分包含在内。 阅读详情

1、插入测试数据

> use mydb  
switched to db mydb  
> user1 = {FName:"Test",LName:"User",Age:30,Gender:"M",Country:"US"}  
{  
        "FName" : "Test",  
        "LName" : "User",  
        "Age" : 30,  
        "Gender" : "M",  
        "Country" : "US"  
}  
> user2 = {Name:"Test USer",Age:45,Gender:"F",Country:"US"}  
{ "Name" : "Test USer", "Age" : 45, "Gender" : "F", "Country" : "US" }  
> db.users.insert(user1)  
WriteResult({ "nInserted" : 1 })  
> db.users.insert(user2)  
WriteResult({ "nInserted" : 1 })
> for(var i = 1; i <= 20; i++) db.users.insert({"Name":"Test User"+i,"Age":10+i,"Gender":"F","Country":"India"})
WriteResult({ "nInserted" : 1 })

2、查询文档

> db.users.find()
或
> db.users.find({})

查询文档包含选择器和投影器

2.1 选择器 - 过滤文档

像SQL中的where条件或者一个用于过滤出结果的过滤器;

查询所有女性:

> db.users.find({"Gender":"F"})

查询来自印度的女性:

> db.users.find({"Gender":"F", $or:[{"Country":"India"}]})

查询来自印度或美国的女性:

> db.users.find({"Gender":"F", $or:[{"Country":"India"},{"Country":"US"}]})

聚合函数:

> db.users.find({"Gender":"F", $or:[{"Country":"India"},{"Country":"US"}]}).count()
21
> db.users.find({"Gender":"F", $or:[{"Country":"India"}]}).count()
20
> db.users.find().count()
22

2.2 投影器

查询并显示所有女性员工的名字和年龄:

> db.users.find({"Gender":"F"}, {"Name":1, "Age":1, "_id":0})
{ "Name" : "Test USer", "Age" : 45 }
{ "Name" : "Test User1", "Age" : 11 }
{ "Name" : "Test User2", "Age" : 12 }
{ "Name" : "Test User3", "Age" : 13 }
{ "Name" : "Test User4", "Age" : 14 }
{ "Name" : "Test User5", "Age" : 15 }
{ "Name" : "Test User6", "Age" : 16 }
{ "Name" : "Test User7", "Age" : 17 }
{ "Name" : "Test User8", "Age" : 18 }
{ "Name" : "Test User9", "Age" : 19 }
{ "Name" : "Test User10", "Age" : 20 }
{ "Name" : "Test User11", "Age" : 21 }
{ "Name" : "Test User12", "Age" : 22 }
{ "Name" : "Test User13", "Age" : 23 }
{ "Name" : "Test User14", "Age" : 24 }
{ "Name" : "Test User15", "Age" : 25 }
{ "Name" : "Test User16", "Age" : 26 }
{ "Name" : "Test User17", "Age" : 27 }
{ "Name" : "Test User18", "Age" : 28 }
{ "Name" : "Test User19", "Age" : 29 }
Type "it" for more

3、排序 - sort()

1用于升序排列,而-1用于降序排列;

按照年龄升序:

> db.users.find({"Gender":"F"}, {"Name":1, "Age":1, "_id":0}).sort({"Age":1})
{ "Name" : "Test User1", "Age" : 11 }
{ "Name" : "Test User2", "Age" : 12 }
{ "Name" : "Test User3", "Age" : 13 }
{ "Name" : "Test User4", "Age" : 14 }
{ "Name" : "Test User5", "Age" : 15 }
{ "Name" : "Test User6", "Age" : 16 }
{ "Name" : "Test User7", "Age" : 17 }
{ "Name" : "Test User8", "Age" : 18 }
{ "Name" : "Test User9", "Age" : 19 }
{ "Name" : "Test User10", "Age" : 20 }
{ "Name" : "Test User11", "Age" : 21 }
{ "Name" : "Test User12", "Age" : 22 }
{ "Name" : "Test User13", "Age" : 23 }
{ "Name" : "Test User14", "Age" : 24 }
{ "Name" : "Test User15", "Age" : 25 }
{ "Name" : "Test User16", "Age" : 26 }
{ "Name" : "Test User17", "Age" : 27 }
{ "Name" : "Test User18", "Age" : 28 }
{ "Name" : "Test User19", "Age" : 29 }
{ "Name" : "Test User20", "Age" : 30 }
Type "it" for more

按照名字降序并且按照年龄升序:

> db.users.find({"Gender":"F"}, {"Name":1, "Age":1, "_id":0}).sort({"Name":-1, "Age":1})
{ "Name" : "Test User9", "Age" : 19 }
{ "Name" : "Test User8", "Age" : 18 }
{ "Name" : "Test User7", "Age" : 17 }
{ "Name" : "Test User6", "Age" : 16 }
{ "Name" : "Test User5", "Age" : 15 }
{ "Name" : "Test User4", "Age" : 14 }
{ "Name" : "Test User3", "Age" : 13 }
{ "Name" : "Test User20", "Age" : 30 }
{ "Name" : "Test User2", "Age" : 12 }
{ "Name" : "Test User19", "Age" : 29 }
{ "Name" : "Test User18", "Age" : 28 }
{ "Name" : "Test User17", "Age" : 27 }
{ "Name" : "Test User16", "Age" : 26 }
{ "Name" : "Test User15", "Age" : 25 }
{ "Name" : "Test User14", "Age" : 24 }
{ "Name" : "Test User13", "Age" : 23 }
{ "Name" : "Test User12", "Age" : 22 }
{ "Name" : "Test User11", "Age" : 21 }
{ "Name" : "Test User10", "Age" : 20 }
{ "Name" : "Test User1", "Age" : 11 }
Type "it" for more

4、限制返回结果数量 - limit()

> db.users.find({"Gender":"F", $or:[{"Country":"India"},{"Country":"US"}]}).limit(2)
{ "_id" : ObjectId("5afbe1a28dda484c0d9dae6a"), "Name" : "Test USer", "Age" : 45, "Gender" : "F", "Country" : "US" }
{ "_id" : ObjectId("5afbe1b08dda484c0d9dae6b"), "Name" : "Test User1", "Age" : 11, "Gender" : "F", "Country" : "India" }

5、跳过指定数量记录 - skip()

> db.users.find({"Gender":"F", $or:[{"Country":"India"},{"Country":"US"}]}).limit(2).skip(2)
{ "_id" : ObjectId("5afbe1b08dda484c0d9dae6c"), "Name" : "Test User2", "Age" : 12, "Gender" : "F", "Country" : "India" }
{ "_id" : ObjectId("5afbe1b08dda484c0d9dae6d"), "Name" : "Test User3", "Age" : 13, "Gender" : "F", "Country" : "India" }

6、返回符合条件的第一个文档 - findOne()

find()返回一个游标,而findOne()返回单个文档;

> db.users.findOne({"Gender":"F"}, {"Name":1, "Age":1})
{
        "_id" : ObjectId("5afbe1a28dda484c0d9dae6a"),
        "Name" : "Test USer",
        "Age" : 45
}
> db.users.findOne()
{
        "_id" : ObjectId("5afbe19f8dda484c0d9dae69"),
        "FName" : "Test",
        "LName" : "User",
        "Age" : 30,
        "Gender" : "M",
        "Country" : "US"
}

7、使用游标

7.1 使用while循环操作储存游标对象的变量

> var c = db.users.find({"Country":"US"})
> while(c.hasNext()) printjson(c.next())
{
        "_id" : ObjectId("5afbe19f8dda484c0d9dae69"),
        "FName" : "Test",
        "LName" : "User",
        "Age" : 30,
        "Gender" : "M",
        "Country" : "US"
}
{
        "_id" : ObjectId("5afbe1a28dda484c0d9dae6a"),
        "Name" : "Test USer",
        "Age" : 45,
        "Gender" : "F",
        "Country" : "US"
}

7.2 把储存游标对象的变量作为数组来操作

> var c = db.users.find({"Country":"US"})
> printjson(c[1])
{
        "_id" : ObjectId("5afbe1a28dda484c0d9dae6a"),
        "Name" : "Test USer",
        "Age" : 45,
        "Gender" : "F",
        "Country" : "US"
}
> c[0]
{
        "_id" : ObjectId("5afbe19f8dda484c0d9dae69"),
        "FName" : "Test",
        "LName" : "User",
        "Age" : 30,
        "Gender" : "M",
        "Country" : "US"
}

8、 explain()

从版本3.0开始,使用了一个可选的被称为verbose的参数,详细级别的模式:allPlansExecution、executionStats以及queryPlanner,默认的详细级别模式是queryPlanner;

> db.users.find({"Name":"Test User"}).explain("allPlansExecution")
{
        "queryPlanner" : {
                "plannerVersion" : 1,
                "namespace" : "mydb.users",
                "indexFilterSet" : false,
                "parsedQuery" : {
                        "Name" : {
                                "$eq" : "Test User"
                        }
                },
                "winningPlan" : {
                        "stage" : "COLLSCAN",
                        "filter" : {
                                "Name" : {
                                        "$eq" : "Test User"
                                }
                        },
                        "direction" : "forward"
                },
                "rejectedPlans" : [ ]
        },
        "executionStats" : {
                "executionSuccess" : true,
                "nReturned" : 0,
                "executionTimeMillis" : 0,
                "totalKeysExamined" : 0,
                "totalDocsExamined" : 22,
                "executionStages" : {
                        "stage" : "COLLSCAN",
                        "filter" : {
                                "Name" : {
                                        "$eq" : "Test User"
                                }
                        },
                        "nReturned" : 0,
                        "executionTimeMillisEstimate" : 0,
                        "works" : 24,
                        "advanced" : 0,
                        "needTime" : 23,
                        "needYield" : 0,
                        "saveState" : 0,
                        "restoreState" : 0,
                        "isEOF" : 1,
                        "invalidates" : 0,
                        "direction" : "forward",
                        "docsExamined" : 22
                },
                "allPlansExecution" : [ ]
        },
        "serverInfo" : {
                "host" : "localhost.localdomain",
                "port" : 27017,
                "version" : "3.4.10",
                "gitVersion" : "078f28920cb24de0dd479b5ea6c66c644f6326e9"
        },
        "ok" : 1
}

MongoDB 如何在shell监控脚本中执行查询 在shell监控脚本中,通常需要以非交互的方式连接到数据库实例查询一些信息,例如MySQL的mysql -e就非常方便,但是对于MongoDB来说,并不能直接在登陆命令后加上查询命令来直接执行,例如 mongo --port 27017 "rs.status()" MongoDB shell version: 3.0.6 connecting to: 127.0.0.1:27017/rs.stat... 阅读详情

相关推荐

基于PTB-XL数据集的深度学习心电信号分类

心电信号的分析与处理是心血管疾病诊断的重要手段。该领域的主要工作领域是分类,它越来越多地得到基于机器学习的算法的支持。在这项工作中,开发了一个深度神经网络来自动分类初级心电信号。这项研究是在PTB-XL数据库中包含的数据上进行的。提出了三种神经网络架构:第一种基于卷积网络,第二种基于SincNet,第三种基于卷积网络,

weixin_55121617的博客 7006

MongoDB实验——MongoDB shell操作

MongoDB shell操作

IT小小白的博客 5112

滑模控制算法——基本原理(附MATLAB程序)

选择一个滑模面和是设计参数。是滑模面函数,通常我们希望系统状态在的面上滑动。我们以一个简单的二阶系统作为示例,其状态空间方程为:是系统矩阵是输入矩阵是输出矩阵假设我们的系统如下:滑模控制算法的核心在于设计合适的滑模面和控制律,并分析系统在滑模面上的稳定性。通过上述公式和步骤,可以有效地设计滑模控制器,以处理具有非线性和不确定性的动态系统。总的来说,滑模控制算法因其鲁棒性和灵活性在处理复杂控制问题中表现出色,但在实际应用中需要精心设计以克服抖振现象和其他潜在问题。BuxuABDC。

qq_35623594的博客 2万+

mongoDB的shell的基本操作

mongoDB的shell的基本操作   默认是以test用户操作,我们可以通过mongolocalhost:27017/admin增大权限   1.创建一个数据库   use[databaseName]   但是若什么也不做就退出的话这个空数据库会被删除   2.查看所有数据库   showdbs   3.给指定数据库添加集合并且添加记录   db

u014464526的专栏 333

遥感图像语义分割的全流程实现(Python代码)

本节介绍了加载遥感 RGB 图像和对应的单通道掩膜(mask)。掩膜中每个像素值为类别索引(如0=背景,1=植被,2=建筑),通过 transform 统一缩放(256×256)和归一化(ImageNet 均值/标准差),确保输入模型的一致性。# 自定义数据集类(适配遥感RGB+单通道掩膜)mask = Image.open(mask_path).convert("L") # 单通道掩膜return image, mask.squeeze(0).long() # 返回RGB图像和类别索引。

qq_42679807的博客 1851

RTKLIB PPP与RTK_POST精密定位实战:从实时到事后处理的完整流程解析

本文详细解析了如何使用RTKLIB进行精密单点定位(PPP)的完整流程,涵盖从实时处理到事后处理(RTK_POST)的关键步骤。文章深入探讨了数据准备、软件配置、核心参数设置(如电离层、对流层、潮汐改正)以及常见问题排查,旨在帮助用户掌握高精度GNSS定位技术,实现从入门到精通的实战应用。

weixin_29047919的博客 276

MongoDB Project(投影字段)

概述 默认情况下,MongoDB中的查询返回匹配文档中的所有字段。 要限制MongoDB发送给应用程序的数据量,可以包含一个投影文档以指定或限制要返回的字段。 本文提供使用mongo shell中的db.collection.find()方法进行投影的查询操作示例。 此页面上的示例使用库存收集。 要填充库存收集,请运行以下命令: db.inventory.insertMany( [ { ite...

weixin_38932035的博客 2954

9 HAL库驱动框架简述(STM32HAL库)

HAL库外设的使用步骤总结如下:1、定义并填充xxx外设句柄结构体。2、如果遵循HAL库规范,通过HAL_xxx_MspInit()函数,实现外设底层资源的初始化,包括但不限于GPIO、时钟、DMA、中断等资源的初始化。3、调用HAL库的对应外设初始化函数,形如:HAL_xxx_Init()。4、初始化完成,开始使用外设。5、使用方法具体查看对应外设的HAL库驱动包中的说明:补充:HAL库使用主线外设初始化外设使用。

qq_25218501的博客 1977

MongoDB shell 数据操作

目录 1 建立连接 2 数据库操作 3集合创建 4用户相关 5集合信息操作 6聚集集合查询 7索引 8修改、添加、删除集合数据 9语句块操作 10 使用案例 11 特别注意 shell命令操作语法和JavaScript很类似,其实控制台底层的查询语句都是用JavaScript脚本完成操作的。 1 建立连接 首先连接上数据库; 在安装目录目录bin下执行, ./mongo -u 'admin' -p 'password' 账户密码没有设置时 ./mongo 指...

码灵的博客 1207

深入解析SOC芯片设计中DFT OCC与ATPG的协同优化策略

本文深入探讨了在复杂SOC芯片设计中,DFT(可测试性设计)的核心组件OCC(片上时钟控制器)与ATPG(自动测试向量生成)的协同优化策略。文章从基本原理出发,分析了OCC作为测试时钟管理者的关键作用,以及ATPG作为故障检测引擎的工作机制,并重点阐述了二者在测试架构选择、参数对齐、低功耗测试等场景下的协同方法与实战技巧,旨在实现更高的测试覆盖率与更低的测试成本。

efc123456的博客 1033

13、深入理解 Microsoft 365 的安全与合规概念

本文深入探讨了 Microsoft 365 的安全与合规概念,涵盖文档存储、文件共享、审计、保留、eDiscovery、分类和保护以及网络等多个关键方面。通过合理配置这些功能,组织可以更好地管理和保护其数据资源,满足法规要求,并提升工作效率。文章还提供了最佳实践建议及流程图,帮助读者全面理解 Microsoft 365 的安全架构和管理策略。

k8s6orchestrator的博客 211

MongoDB Shell 基本操作总结

MongoDB Shell 基本操作总结

qq_39045558的博客 645

AFSim2.9.0学习笔记 —— 4.1、创建项目,以此项目介绍工作中Wizard使用(红方/蓝方武器平台、阵营、更换图标等,多图详细介绍)

AFSim2.9.0学习笔记 —— 4.1、创建项目,以此项目介绍工作中Wizard使用(红方/蓝方武器平台、阵营、更换图标等,多图详细介绍)

2250

【MongoDB】二、MongoDB数据库的基本操作

通过本次实验,我熟练地使用Mongo Shell对数据库,集合,文档进行增删改的操作,以及流畅使用 $group $limit $match $sort $project $skip等聚合管道操作符对文档进行查询、处理及分析。在实验过程中遇到了很多硬件或者是软件上的问题,请教老师,询问同学,上网查资料,都是解决这些问题的途径。最终将遇到的问题一一解决最终完成实验。

慢热型网友的博客 3255

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

shell脚本中mongoDB查询详解

1. 基本的查询shell命令 :“find"或"findOne” findOne和 find mongoDB中查询命令是find ,基本语法如下db.collectionName.find() 上边的语句会返回这个集合中所有的document , 上边的语句中没有指定document , 默认就是 db.collectionName.find({}) 如果想要查询比如 , age是14的学...

leedh_码农 3138

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

MongoDB Shell

MongoDB Shell 是 MongoDB 提供的官方交互式界面,允许用户与 MongoDB 数据库进行交互、执行命令和操作数据库。MongoDB Shell 是基于 JavaScript 的,允许用户直接在命令行或者脚本中使用 JavaScript 语言来操作 MongoDB 数据库。

qq_25502783的博客 932

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

《MongoDB》Mongo Shell中的基本操作-文档查询

本文主要分享的内容是如何通过find()命令进行数据查询,还有很多的操作符包括:比较操作符,逻辑操作符,字段操作符,数组操作符以及运算操作符

Oliver尹的博客 1504

MongoDB 学习二(shell 基本操作)

通过shell启动数据库 使用昨天学过的命令  mongod --dbpath /Users/pro/Documents/mongodb/data/db 来启动服务 (先切换到bin目录下) 然后使用命令   mongo 来启动数据库  这里默认启动的也是27017的端口,如果想更换端口可以使用 mongo --port 8888 前提是前面启动mongodb服务的时候也要更换端

老虎帅呆了的博客 1166

MongoDB常用查询指令及Shell用法

本文介绍了MongoDB常用查询指令及shell用法,让我们拿下它。

924

MongoDB 之旅(二) 基本操作(MongoDB Javascript Shell)

在了解了MongoDB后,这里简单介绍一下对MongoDB的一些简单操作。 MongoDB安装介绍: http://www.cnblogs.com/czxu/archive/2011/06/13/2080162.html MongoDB javascript shell 是一个基于javascript的解释器,故是支持js程序的。如下: for(i=0;i<200000;i...

139

MongoDB 关于MongoDB Shell的使用 (三)

在本文中,将介绍mongo shell的基本知识,以及如何使用它来管理MongoDB文档。为了使读者更容易地理解和实践概念,MongoDB shell的引入被分成了三个部分。

Noseparte的博客 1万+

MongoDB Shell命令

MongoDB Shell是MongoDB的官方交互式工具,基于JavaScript,允许用户通过命令行操作数据库。文章介绍了在macOS、Linux和Windows系统上安装MongoDB Shell的详细步骤:macOS可通过Homebrew或手动下载安装,Linux使用包管理器或手动安装,Windows则下载安装程序。安装完成后,用户可通过mongosh命令连接数据库,执行查询、插入、更新、删除等基本操作。文中提供了连接本地服务器、查看数据库、操作集合的完整示例流程,并附有官方安装文档链接。

xiaoaque的博客 935

mongodb shell基础命令

mongodb shell命令 1.数据库基本操作 在mongodb中,使用use来创建和选择数据库,当数据库不存在时,use会创建一个新的数据库,但是这数据库并没有持久化到硬盘里面,而存在内存中,只有当用户往这个新创建的空数据库建collection才会做持久化操作。 创建和切换数据库 use 数据库名称 查看有权限查看的所有的数据库 mongodb是不对空数据库做持久化的,所以新创建的空数据库,用show指令是看不见的,必须建collection后才能看见。 show dbs show datab

qq_43203949的博客 2134

MongoDB——Shell的基本操作及使用窍门

MongoDB自带一个JavaScript shell,可以从命令行与MongoDB实例交互。这个 shell非常有用,通过它可以执行管理操作、检査运行实例,亦或做其他尝试。这个 mongo shell对于使用MongoDB来说是至关重要的工具,本书后面也会经常使用这 个工具。 运行shell 运行mongo启动shell: $ ./mongo MongoDB shell versio...

学亮编程手记 996

MongoDB 教程二: 添加, 删除,查询 shell命令

  视频:MongoDB 教程二: 添加, 删除,查询 shell命令     MongoDB Shell 常用操作命令 MonoDB   shell命令操作语法和JavaScript很类似,其实控制台底层的查询语句都是用JavaScript脚本完成操作的。   Ø 数据库 //1、Help查看命令提示 help db.help(); db.yourColl.hel...

Just Code 238
上一篇: MongoDB Shell基本操作(一) - 增删改
下一篇: MongoDB Shell基本操作(三) - 索引
hellboy0621
博客等级 码龄9年 61粉丝 147原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值