天天看點

學習MongoDB 四: MongoDB查詢(一)

一、簡介

    MongoDB提供了db.collection.find() 方法可以實作根據條件查詢和指定使用投影運算符傳回的字段省略此參數傳回比對文檔中的所有字段。

二.db.collection.find()查詢資料

   文法

參數

類型

描述

query

document

可選. 使用查詢操作符指定查詢條件

projection

指定使用投影運算符傳回的字段省略此參數傳回比對文檔中的所有字段

projection文法:

 說明:

   1或者true表示傳回字段

   0或者false表示不傳回該字段

    _id:預設就是1,沒指定傳回該字段時,預設會傳回,除非設定為0是,就不會傳回該字段。

    指定傳回字段,有時文檔字段多并資料大時,我們指定傳回我們需要的字段,這樣既節省傳輸資料量,減少了記憶體消耗,提高了性能,在資料大時,性能很明顯的。

(1)傳回集合中所有文檔:

     db.collection.find()

     或者

    db.collection.find({})

學習MongoDB 四: MongoDB查詢(一)

   如同SQL語句:

   SELECT * FROM TABLENAME

學習MongoDB 四: MongoDB查詢(一)
學習MongoDB 四: MongoDB查詢(一)

(2)指定使用投影運算符傳回的字段省略此參數傳回比對文檔中的所有字段

         文法:

     例子:

學習MongoDB 四: MongoDB查詢(一)

   而_id預設設定是1,所有也傳回回來

    可以設定_id不傳回

    例子:

學習MongoDB 四: MongoDB查詢(一)

     文法:

學習MongoDB 四: MongoDB查詢(一)
學習MongoDB 四: MongoDB查詢(一)

     查找onumber=002的文檔

    $gt(大于)、$gte(大于或等于)、 $lt(小于)、 $lte(小于或等于)

    文法:

     1)$gt(大于)比較操作符

       例子:

學習MongoDB 四: MongoDB查詢(一)

        我們查找onumber>003的值隻有004

    2)$gte(大于或等于)與 $lte(小于或等于)聯合查詢并指定傳回字段(通過第二參數)

       例子:

學習MongoDB 四: MongoDB查詢(一)

      我們查找002=<onumber<=003 并指定傳回onumber和cname字段,而_id預設設定是1,所有也傳回回來

      1)$and 條件查詢

        文法:

      簡單的用法的文法:

     例子:

學習MongoDB 四: MongoDB查詢(一)

     查找onumber=002 AND cname= zcy2 查詢文檔

   2)$or(或者)條件查詢

      文法:

學習MongoDB 四: MongoDB查詢(一)

    我們條件onumber=002 OR cname= zcy1 查找隻要符合onumber=002或者cname= zcy1條件的文檔

  3) $or 和$and 聯合條件查詢

學習MongoDB 四: MongoDB查詢(一)

     查詢條件 date=2015-07-01and (onumber=002 OR cname=zcy1) 的文檔,就是既等如date等于2015-07-01 并且要滿足onumber等于002或者cname等于zcy1其中一個就可以。

       1)$in(包含)條件查詢

           文法:

          例子:

學習MongoDB 四: MongoDB查詢(一)

             查詢onumber in("001","002") 條件的文檔,就是onumber等于001或者等于002 這個跟$or有點像,不過$or做為條件查詢時,可以指定不同的字段:  db.orders.find({$or:[{"onumber":"002"},{"cname":"zcy1"}]})

,而$in隻針對一個字段。

       2)$nin(不包含)條件查詢

            $nin(不包含)跟$in(包含)相反的,這裡就不做具體的介紹

       文法:

        $not操作符不能獨立使用,必須跟其他操作條件一起使用(除$regex)

學習MongoDB 四: MongoDB查詢(一)
學習MongoDB 四: MongoDB查詢(一)

      查找onumber不等于大于002的文檔資料

學習MongoDB 四: MongoDB查詢(一)

     沒有age這個元素,什麼都沒傳回

     插入有age元素,在執行一下

學習MongoDB 四: MongoDB查詢(一)

     對元素field值對value取模的,取模的值要value2的文檔資料

學習MongoDB 四: MongoDB查詢(一)

     對age元素的值和5取模,取模的值要等于1的文檔資料

         { field: null }

      例子:

學習MongoDB 四: MongoDB查詢(一)

       1)      查找age元素存在并值等于null

學習MongoDB 四: MongoDB查詢(一)

       { field: { $type: < number >} }

      number 是MongoDB中使用的類型對應的類型值

類型值

Double

1

String

2

Object

3

Array

4

Binary data

5

Undefined (deprecated)

6

Object id

7

Boolean

8

Date

9

Null

10

Regular Expression

11

JavaScript

13

Symbol

14

JavaScript (with scope)

15

32-bit integer

16

Timestamp

17

64-bit integer

18

Min key

255

Max key

127