當前位置:
首頁 > 知識 > MongoDB 查詢文檔

MongoDB 查詢文檔

MongoDB 查詢文檔使用 find() 方法。

find() 方法以非結構化的方式來顯示所有文檔。

MongoDB 查詢文檔

語法

MongoDB 查詢數據的語法格式如下:

db.collection.find(query, projection)

  • query :可選,使用查詢操作符指定查詢條件

  • projection :可選,使用投影操作符指定返回的鍵。查詢時返迴文檔中所有鍵值, 只需省略該參數即可(默認省略)。

如果你需要以易讀的方式來讀取數據,可以使用 pretty() 方法,語法格式如下:

>db.col.find().pretty()

pretty() 方法以格式化的方式來顯示所有文檔。

實例

以下實例我們查詢了集合 col 中的數據:

> db.col.find().pretty(){
"_id" : ObjectId("56063f17ade2f21f36b03133"),
"title" : "MongoDB ",
"description" : "MongoDB 是一個 Nosql 資料庫",
"by" : "我愛學習",
"url" : "http://www.runoob.com",
"tags" : [
"mongodb",
"database",
"NoSQL"
],
"likes" : 100}

除了 find() 方法之外,還有一個 findOne() 方法,它只返回一個文檔。


MongoDB 與 RDBMS Where 語句比較

如果你熟悉常規的 SQL 數據,通過下表可以更好的理解 MongoDB 的條件語句查詢:


操作 格式 範例 RDBMS中的類似語句
等於 {:} db.col.find({"by":"菜鳥教程"}).pretty() where by = "菜鳥教程"
小於 {:{$lt:}} db.col.find({"likes":{$lt:50}}).pretty() where likes < 50
小於或等於 {:{$lte:}} db.col.find({"likes":{$lte:50}}).pretty() where likes <= 50
大於 {:{$gt:}} db.col.find({"likes":{$gt:50}}).pretty() where likes > 50
大於或等於 {:{$gte:}} db.col.find({"likes":{$gte:50}}).pretty() where likes >= 50
不等於 {:{$ne:}} db.col.find({"likes":{$ne:50}}).pretty() where likes != 50



MongoDB AND 條件

MongoDB 的 find() 方法可以傳入多個鍵(key),每個鍵(key)以逗號隔開,即常規 SQL 的 AND 條件。

語法格式如下:

>db.col.find({key1:value1, key2:value2}).pretty()

實例

以下實例通過 bytitle 鍵來查詢 我愛學習MongoDB 的數據

> db.col.find({"by":"我愛學習", "title":"MongoDB "}).pretty(){
"_id" : ObjectId("56063f17ade2f21f36b03133"),
"title" : "MongoDB ",
"description" : "MongoDB 是一個 Nosql 資料庫",
"by" : "我愛學習,
"url" : "http://www.runoob.com",
"tags" : [
"mongodb",
"database",
"NoSQL"
],
"likes" : 100}

以上實例中類似於 WHERE 語句:WHERE by="我愛學習" AND title="MongoDB "


MongoDB OR 條件

MongoDB OR 條件語句使用了關鍵字 $or,語法格式如下:

>db.col.find(
{
$or: [ {key1: value1}, {key2:value2}
]
}).pretty()

實例

以下實例中,我們演示了查詢鍵 by 值為 我愛學習或鍵 title 值為 MongoDB 的文檔。

>db.col.find({$or:[{"by":"我愛學習"},{"title": "MongoDB "}]}).pretty(){
"_id" : ObjectId("56063f17ade2f21f36b03133"),
"title" : "MongoDB ",
"description" : "MongoDB 是一個 Nosql 資料庫",
"by" : "我愛學習",
"url" : "http://www.runoob.com",
"tags" : [
"mongodb",
"database",
"NoSQL"
],
"likes" : 100}>


AND 和 OR 聯合使用

以下實例演示了 AND 和 OR 聯合使用,類似常規 SQL 語句為: "where likes>50 AND (by = "我愛學習" OR title = "MongoDB ")"

>db.col.find({"likes": {$gt:50}, $or: [{"by": "我愛學習"},{"title": "MongoDB "}]}).pretty(){
"_id" : ObjectId("56063f17ade2f21f36b03133"),
"title" : "MongoDB ",
"description" : "MongoDB 是一個 Nosql 資料庫",
"by" : "我愛學習",
"url" : "http://www.runoob.com",
"tags" : [
"mongodb",
"database",
"NoSQL"
],
"likes" : 100}

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 程序員小新人學習 的精彩文章:

VBScript 變數

TAG:程序員小新人學習 |