標籤:des http io os 使用 sp 檔案 資料 on
find() 方法
要從MongoDB 查詢集合資料,需要使用MongoDB 的 find() 方法。
文法
基本的find()方法文法如下
>db.COLLECTION_NAME.find()
find() 方法將在非結構化的方式顯示所有的檔案。
pretty() 方法
結果顯示在一個格式化的方式,可以使用 pretty() 方法.
文法:
>db.mycol.find().pretty()
例子
>db.mycol.find().pretty(){ "_id": ObjectId(7df78ad8902c), "title": "MongoDB Overview", "description": "MongoDB is no sql database", "by": "tutorials point", "url": "http://www.yiibai.com", "tags": ["mongodb", "database", "NoSQL"], "likes": "100"}>
除了find() 方法外,還有一個 findOne() 法,返回一個檔案。
RDBMS Where子句和MongoDB等同語句
要查詢檔案的一些條件的基礎上,可以使用下面的操作
操作 |
文法 |
例子 |
RDBMS 等同 |
Equality |
{<key>:<value>} |
db.mycol.find({"by":"tutorials point"}).pretty() |
where by = ‘tutorials point‘ |
Less Than |
{<key>:{$lt:<value>}} |
db.mycol.find({"likes":{$lt:50}}).pretty() |
where likes < 50 |
Less Than Equals |
{<key>:{$lte:<value>}} |
db.mycol.find({"likes":{$lte:50}}).pretty() |
where likes <= 50 |
Greater Than |
{<key>:{$gt:<value>}} |
db.mycol.find({"likes":{$gt:50}}).pretty() |
where likes > 50 |
Greater Than Equals |
{<key>:{$gte:<value>}} |
db.mycol.find({"likes":{$gte:50}}).pretty() |
where likes >= 50 |
Not Equals |
{<key>:{$ne:<value>}} |
db.mycol.find({"likes":{$ne:50}}).pretty() |
where likes != 50 |
AND 在MongoDB中用法文法:
在 find() 方法,如果通過多個鍵分離‘,‘,那麼 MongoDB 處理 AND 條件。AND 基本文法如下所示:
>db.mycol.find({key1:value1, key2:value2}).pretty()
例子
下面給出的例子將顯示所有的教程,標題是“MongoDB Overview“
>db.mycol.find({"by":"tutorials point","title": "MongoDB Overview"}).pretty(){ "_id": ObjectId(7df78ad8902c), "title": "MongoDB Overview", "description": "MongoDB is no sql database", "by": "yiibai", "url": "http://www.yiibai.com", "tags": ["mongodb", "database", "NoSQL"], "likes": "100"}>
對於上面給出的例子相當於where子句 ‘ where by=‘yiibai‘ AND title=‘MongoDB Overview‘ , 可以通過任意數量的索引值對在 find 子句。
MongoDB中OR文法:
OR條件的基礎上要查詢檔案,需要使用$or關鍵字。OR 基本文法如下所示:
>db.mycol.find( { $or: [ {key1: value1}, {key2:value2} ] }).pretty()
例子
下面給出的例子將顯示所有的教程,由‘yiibai‘ 所寫或標題是“MongoDB Overview ‘
>db.mycol.find({$or:[{"by":"yiibai"},{"title": "MongoDB Overview"}]}).pretty(){ "_id": ObjectId(7df78ad8902c), "title": "MongoDB Overview", "description": "MongoDB is no sql database", "by": "yiibai", "url": "http://www.yiibai.com", "tags": ["mongodb", "database", "NoSQL"], "likes": "100"}>
AND 和 OR 一起使用例子
下面給出的例子將顯示有像的檔案大於100,其標題是“MongoDB Overview‘或者是‘yiibai‘ 。等效於 SQL where子句 為 ‘where likes>10 AND (by = ‘yiibai‘ OR title = ‘MongoDB Overview‘)‘
>db.mycol.find("likes": {$gt:10}, $or: [{"by": "yiibai"}, {"title": "MongoDB Overview"}] }).pretty(){ "_id": ObjectId(7df78ad8902c), "title": "MongoDB Overview", "description": "MongoDB is no sql database", "by": "yiibai", "url": "http://www.yiibai.com", "tags": ["mongodb", "database", "NoSQL"], "likes": "100"}>
【Mongodb教程 第七課 】MongoDB 查詢文檔