当前位置: 首页 > article >正文

MongoDB文档查询

一、实验目的

1.  理解MongoDB文档数据库的基本概念和特性。

2.  掌握在MongoDB中创建集合和插入文档数据的方法。

3.  学习使用MongoDB进行文档查询操作,包括查询、过滤和排序等。

二、实验环境准备

1.  JAVA环境准备:确保Java Development Kit (JDK) 已安装并配置好环境变量。

2.  Hadoop环境准备:安装并配置Hadoop环境,确保Hadoop的各个组件可以在伪分布式模式下运行。

三、实验教材参考

《大数据存储》,谭旭,人民邮电出版社,2022,ISBN 978-7-115-59414-3。

四、实验内容与步骤

1、创建集合

在MongoDB中创建一个新的数据集合,用于存储实验数据

2、插入文档数据

将至少三个文档插入到所创建的数据集合中,每个文档包含不同的字段和数据类型。

db.collection.insert([

  {

    name: "John Doe",           

    age: 29,                    

    hobbies: ["reading", "hiking"],

    isEmployed: true,           

    joinDate: new Date()        

  },

  {

    title: "MongoDB Basics",    

    pages: 250,                 

    author: {                   

      firstName: "Jane",

      lastName: "Smith"

    },

    published: true,            

    price: 19.99,               

    tags: ["database", "mongodb", "tutorial"]

  },

  {

    productName: "Smartphone",  

    stock: 500,                 

    specifications: {           

      brand: "TechBrand",

      model: "X100",

      features: ["5G", "128GB Storage", "Waterproof"]

    },

    available: false,           

    releaseDate: ISODate("2023-11-01T00:00:00Z")

  }

])

3、文档查询操作

(1)查询集合中的所有文档:db.collection.find()

(2)根据特定条件查找文档

查找“name”为"John Doe"的文档:db.collection.find({ name: "John Doe" })

查询“age”大于25的文档:db.collection.find({ age: { $gt: 25 } }).pretty()

(3)对查询结果进行排序,展示文档排序的功能

按age升序排序:db.collection.find({ age: { $exists: true } }).sort({ age: 1 }).pretty()

按price降序排序:db.collection.find({ price: { $exists: true } }).sort({ price: -1 }).pretty()

(4)根据条件过滤文档

查找stock大于等于 100 的文档:db.collection.find({ stock: { $gte: 100 } }).pretty()

查找available为false的文档:db.collection.find({ available: false }).pretty()


http://www.kler.cn/a/512388.html

相关文章:

  • KVM创建ubuntu20.04虚机,部署K8S,再克隆出二份,做为Worker节点加入集群,通过Helm创建2个Pod,让它们之间通过域名互访
  • 深度学习 · 手撕 DeepLearning4J ,用Java实现手写数字识别 (附UI效果展示)
  • C# OpenCvSharp 部署文档矫正,包括文档扭曲/模糊/阴影等情况
  • 【LeetCode: 215. 数组中的第K个最大元素 + 快速选择排序】
  • Nginx:通过upstream进行代理转发
  • ReactiveSwift 简单使用
  • PyTorch使用教程(11)-cuda的使用方法
  • Skeleton 骨架屏
  • 【漫话机器学习系列】051.错误类型(Error Type)
  • kafka 学习笔记3-传统部署Kraft模式集群——筑梦之路
  • git 常见问题
  • MYSQL 5.7数据库,关于1067报错 invalid default value for,解决方法!
  • 微服务学习-快速搭建
  • c#实现当捕获异常时自动重启程序
  • 抖音小程序一键获取手机号
  • 博客搭建 — Algolia DocSearch 实现站点搜索
  • IS-IS 知识点回顾 | 数据包泛洪控制 | SRM SSN
  • 文本摘要研究:从统计方法到大型语言模型
  • jenkins-api操作
  • 使用AI生成金融时间序列数据:解决股市场的数据稀缺问题并提升信噪比
  • Java 日志技术、Logback日志框架、日志级别
  • 使用vue-next-admin框架后台修改动态路由
  • easy_Maze
  • 数据库的DQL(3)
  • 【18】Word:明华中学-儿童医保❗
  • CSS中相对定位和绝对定位详解