一、實驗目的
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()