mongoDB 文件查詢

2021-09-22 21:00:02 字數 2686 閱讀 5695

在關係型資料庫中,可以實現基於表上各種各樣的查詢,以及通過投影來返回指定的列。對於nosql mongodb而言,所有能夠在單錶上完成的查詢,在mongodb中也可以完全勝任。除此之外,由於mongodb支援基於文件巢狀以及陣列,因此mongodb也可以實現基於巢狀文件和陣列的查詢。具體見下文描述。

預備熱身

linux下快速安裝mongodb

windows平台下安裝mongodb

mongodb 啟動與停止

mongo shell連線到mongodb及shell提示符下執行js指令碼

mongodb簡介及關鍵特性

sql與mongodb對比及對映

db.collection.find( , )  

db.collection.findone() //僅僅返回單個文件,相當於使用limit

查詢的過濾條件

投影,即哪些列需要返回

對於查詢的結果可以新增limits, skips, sort 等方式控制返回的結果集

預設情況下,在mongo shell中對於未使用將結果集返回給變數的情形下,僅返回前20條記錄

注:本文描述中有些地方使用到了文件的鍵值對,稱為鍵和值,有些地方稱為列,是乙個概念

//演示環境

db.version()

3.2.9

//插入演示資料

db.users.insertmany([,

finished: [ 17, 3 ],

badges: [ "blue", "black" ],

points: [,]

},,

finished: [ 11, 25 ],

badges: [ "green" ],

points: [,]

},,

finished: [ 6 ],

badges: [ "blue", "red" ],

points: [,]

},,

finished: [ 5, 11 ],

badges: [ "red", "black" ],

points: [,]

},,

finished: [ 14, 6 ],

badges: [ "orange" ],

points: []},

,finished: [ 18, 12 ],

badges: [ "black", "blue" ],

points: [,]

}]

)

//查詢所有文件,文件太多,此處及以下演示查詢結果省略

db.users.find( {} ) //與方式等價於db.users.find()

db.users.findone( {} ) //查詢單條記錄

//等值查詢,

1 or true 顯示該欄位

0 or false 不顯示該欄位

//查詢結果中顯示欄位name及status,預設情況下,文件的_id列會被返回

> db.users.find( , )

//查詢結果中顯示欄位name及status,且不顯示_id列

> db.users.find( , )

//返回查詢中未列出的全部列名

> db.users.find( , )

//返回內嵌文件指定的列名,相反地,如果不顯示內嵌文件的某個列,將在置0即可

> db.users.find(,)

}}

}//返回陣列內內嵌文件的指定列,如下查詢為陣列points內嵌文件bonus列

> db.users.find( , )

, ] }

, ] }

, ] }

//下面的查詢使用了$slice操作符,這將僅僅返回符合status為a,且顯示陣列中的最後乙個元素

> db.users.find( , } )

] }] }

] }

//插入文件

> db.users.insert([,

,]

)//查詢name自動為null的文件,注,以下查詢中,不存在name列的文件_id:901的也被返回

> db.users.find( )

//通過$type方式返回name為null的文件,此時_id:901未返回

> db.users.find( } )

//通過$exists返回name自動不存在的文件

> db.users.find( } )

1、文件查詢db.users.find()等價於db.users.find( {} )

2、基於an

d運算子

的多個組

合條件可

以省略and,直接將條件組合即可

3、對於$and運算子內的條件,用括起來,相當於陣列形式

4、對於陣列查詢,可以使用基於下標的方式精確配置特定的元素值

5、對於內嵌文件,可以使用」文件鍵.內嵌文件鍵」方式進行訪問

6、對於陣列內內嵌文件的方式,可以使用」陣列名.下標.內嵌文件鍵」方式訪問

7、對於哪些列名需要顯示可以通過來設定

8、本文參考:

Mongodb查詢文件

mongodb查詢文件 db.blog.find 檢視集合下的所有文件 db.blog.find limit 50 可以限制查詢文件的數量 db.blog.find limit 1 db.blog.find pretty 格式化查詢文件加上 pretty id objectid 5438dd3fa7...

MongoDB 查詢文件

mongodb 查詢文件使用 find 方法。find 方法以非結構化的方式來顯示所有文件。mongodb 查詢資料的語法格式如下 db collection find query projection collection find query projection 如果你需要以易讀的方式來讀取資...

MongoDB 查詢文件

mongodb 查詢資料 db.collection.find query,projection 易讀的方式來讀取資料,可以使用 pretty 方法 db.col.find pretty 通過 by 和 title 鍵來查詢 db.col.find pretty 類似於 where 語句 where...