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()