程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> MongoDB之CRUD操作基礎教程

MongoDB之CRUD操作基礎教程

編輯:關於SqlServer
 

與傳統關系型數據庫使用SQL語言進行數據操作不同,MongoDB無法使用SQL語言進行操作,需要使用自身的數據操縱語言,一般我們稱為CRUD(create,read,update,delete)。
在本文中,我們將介紹MongoDB的CRUD數據操作的數據查詢部分。
 

一、MongoDB 邏輯結構簡介

MongoDB是一種文檔型數據庫,以“文檔”的形式存放數據。這裡的“文檔”與WordExcel等“文檔”不是一個概念,文檔型數據庫中的“文檔”是“鍵-值”對的集合。比如下圖,就是一個文檔。

MongoDB中,文檔的集合稱為collection(集合),每個MongoDB集合中有類似的文檔構成。

與關系型數據庫相比,兩者有如下的從小到大的結構:
關系型數據庫:字段——行——表——數據庫
文檔型數據庫:字段——文檔—集合—數據庫
不同的是關系型數據庫一張表中,每一行一定是由完全相同的字段構成,而文檔型數據庫的一個集合中,每個文檔可以由不同的字段構成。
 

二、MongoDB 數據查詢

1.導入示例數據

類似Oracle數據庫中HR、Scott等用戶的示例數據,MongoDB也提供了示例數據供我們使用。
使用下面的命令,導入示例數據

[root@wekms ~]# mkdir mongodb
[root@wekms ~]# cd mongodb/
[root@wekms mongodb]# wget https://raw.githubusercontent.com/mongodb/docs-assets/primer-dataset/dataset.json
[root@wekms mongodb]# ll
total 11604
-rw-r--r-- 1 root root 11880944 Feb  3 21:41 dataset.json
[root@wekms mongodb]# mongoimport --db test --collection restaurants --drop --file dataset.json
2016-02-03T21:42:26.080+0800    connected to: localhost
2016-02-03T21:42:26.082+0800    dropping: test.restaurants
2016-02-03T21:42:28.740+0800    imported 25359 documents
[root@wekms mongodb]# mongo
MongoDB shell version: 3.2.1
connecting to: test
> show collections
restaurants

 

2.查詢的基本形式

類似關系型數據庫中的select語句,MongoDB中可以使用find命令進行數據查詢



上圖中,
db.users.find 指定了在users集合中查詢數據;
{ age: { $gt: 18 } } 指定了過濾條件——只選擇age字段大於18的文檔;
{ name: 1, address: 1 } 後面的projection表示數學中的“投影”運算,從全部字段中提取一部分字段。name: 1 表示需要輸出name字段,name: 0 表示不輸出name字段。
limit(5) 表示只取前5行。
接下來,我們進行更詳細的分析。

3.全集合查詢

db.restaurants.find()

4.指定查詢過濾條件

db.restaurants.find( { "borough": "Manhattan" } )

5.為嵌入文檔指定查詢過濾條件

db.restaurants.find( { "address.zipcode": "10075" } )

6.在過濾條件中使用比較運算符

大於運算 db.restaurants.find( { "grades.score": { $gt: 30 } } )  
小於運算 db.restaurants.find( { "grades.score": { $lt: 10 } } )  

7.組合過濾條件

AND:使用逗號分隔兩個過濾條件,即可構成AND運算 db.restaurants.find( { "cuisine": "Italian", "address.zipcode": "10075" } ) OR:使用 $or: [ 條件1,條件2 ],即可構成 OR 運算 db.restaurants.find( { $or: [ { "cuisine": "Italian" }, { "address.zipcode": "10075" } ] } )
 

8.查詢結果排序

使用SORT命令對查詢結果排序,數字1表示按該字段順序排序,-1表示逆序排序。
db.restaurants.find().sort( { "borough": 1, "address.zipcode": 1 } )
 
至此,我們對MongoDB的數據查詢就有了初步的了解,在下篇文章中,我們將介紹MongoDB的CRUD數據修改。
 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved