最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MongoDB查詢技巧總結

 更新時間:2014年05月03日 09:37:08   作者:  
這篇文章主要介紹了MongoDB查詢技巧總結,例如AND、OR條件查詢,子文檔查詢等,需要的朋友可以參考下

在MongoDB中db.collection.find()方法用于從集合中檢索文檔。db.collection.find()方法返回一個檢索到文檔的游標。db.collection.findOne()方法也執(zhí)行讀操作,返回一條文檔。在內部實現(xiàn)上,db.collection.findOne()方法是db.collection.find()使用limit 1。

查詢集合中的所有文檔:

1.一個空的query文檔({})可以查出一個集合中的所有文檔:

復制代碼 代碼如下:
db.inventory.find( {} )

2.沒有指定query文檔的find()等價于指定一個空query文檔的查詢。因此,下面的查詢和上面的查詢時等價的:

復制代碼 代碼如下:
db.inventory.find()

指定相等條件:
使用{<field>:<value>}文檔指定相等條件,查詢所有包含<field>字段,值為<value>的文檔。下面的例子從inventory集合中檢索所有type字段值為snacks的所有文檔:

復制代碼 代碼如下:
db.inventory.find( { type: "snacks" } )

使用query操作符指定條件:
在MongoDB中可以使用query操作符指定條件。下面的例子從inventory集合中查詢type字段的值為'food'或者'snacks':

復制代碼 代碼如下:
db.inventory.find( { type: { $in: [ 'food', 'snacks' ] } } )

雖然這個查詢可以使用$or操作符,但是對于同一個字段的相等檢測使用$in而不是$or。

指定AND條件:
符合查詢可以在條件中指定多個文檔字段。邏輯AND連接一起的復合查詢條件,查詢符合所有條件的文檔。下面例子中,query文檔指定等于food和price字段小于($lt)指定值的查詢條件:

復制代碼 代碼如下:
db.inventory.find( { type: 'food', price: { $lt: 9.95 } } )

這個查詢選擇所有type字段值等于food,而且price字段值小于9.95的文檔。

指定OR條件:
使用$or操作符,可以指定一個使用邏輯OR連接的復合查詢,查詢選擇集合中至少匹配一個條件的文檔。下面的例子中,查詢集合中所有qty字段值大于($gt)100或者price字段值小于($lt)9.95的文檔:

復制代碼 代碼如下:
db.inventory.find(
    { $or: [
        { qty: { $gt: 100 } },
              { price: { $lt: 9.95 } }
      ]
    }
)

同時指定AND和OR條件:
使用更多的條件,可以指定精確的查詢條件。在下面的例子中,符合query文檔選擇集合中所有type字段值為'food',并且qty的值大于($gt)100或者price值小于($lt)9.95的文檔:

復制代碼 代碼如下:
db.inventory.find( { type: 'food', $or: [ { qty: { $gt: 100 } },
                                                  { price:{ $lt:9.95 } }
                                                ]
                          } )


子文檔:
         當字段包含嵌入的文檔(即子文檔),可以指定整個子文檔作為一個字段的值,或使用點符號“進入”子文件,指定該子文檔的各個字段的值:
1.精確匹配子文檔:
指定一個相等條件匹配整個子文檔,使用query文檔{<field>:<value>},<value>用于匹配子文檔?!跋嗟取逼ヅ渥游臋n需要子文檔的字段精確匹配<value>條件,包括字段的順序。下面的例子查詢producer字段的值匹配一個僅包含值為“ABC123”的company字段和值為“123 Street”的子文檔,并且有先后順序:
       
復制代碼 代碼如下:
db.inventory.find(
                             {
                                 producer: {
                                       company: 'ABC123',
                                       address: '123 Street' }
                             }
                          )


2.子文檔字段“相等”匹配:
查詢集合中指定字段的子文檔的字段包含指定條件的文檔。下面的例子使用點符號查詢producer的子文檔的conmpany字段值為“ABC123”的所有文檔:
       
復制代碼 代碼如下:
db.inventory.find( { 'producer.company': 'ABC123' } )

數(shù)組:
        當字段值是一個數(shù)組時,可以使用數(shù)組精確匹配或者在數(shù)組中指定值。如果數(shù)組元素是一個子文檔,可以使用點符號指定字段。
精確匹配數(shù)組:
        在數(shù)組中指定相等條件,使用query文檔{<field>:<value>},<value>是用于匹配的數(shù)組。數(shù)組的精確匹配需要數(shù)組的字段完全匹配指定的<value>,包括元素的順序:
       

復制代碼 代碼如下:
db.inventory.find( { tags: [ 'fruit', 'food', 'citrus' ] } )

匹配一個數(shù)組元素:
        可以在數(shù)組中指定一個單獨的元素用于"相等"匹配。這種規(guī)范匹配的數(shù)組至少需要包含一個指定的元素。下面的例子將匹所有tags是一個數(shù)組且包含"fruit"元素的文檔:
        
復制代碼 代碼如下:
db.inventory.find( { tags: 'fruit' } )

匹配數(shù)組的指定元素:
        在數(shù)組中匹配指定索引或位置與條件相等的文檔。下面例子中,使用點符號匹配所有tags是一個數(shù)組,且第一個元素是"fruit"的文檔:
       
復制代碼 代碼如下:
db.inventory.find( { 'tags.0' : 'fruit' } )

子文檔數(shù)組:

使用數(shù)組索引匹配子文檔的字段:
        如果知道子文檔數(shù)組的索引,就可以指定子文檔的位置。下面的例子查詢所有memo包含一個數(shù)組且第一個元素是一個子文檔,子文檔的by字段值為"shipping"的文檔:
       

復制代碼 代碼如下:
db.inventory.find( { 'memos.0.by': 'shipping' } )

匹配一個字段不使用數(shù)組索引:
        如果不知道子文檔的索引位置,使用點連接數(shù)組的字段名稱和子文檔字段名稱。下面的例子查詢所有memos字段是一個數(shù)組,且數(shù)組包含至少一個by字段值為"shipping"的子文檔的文檔:
       
復制代碼 代碼如下:
db.inventory.find( { 'memos.by': 'shipping' } )

匹配多個字段:
        為了在子文檔中匹配多個字段,可以使用點符號或者$elemMatch操作符。下面的例子使用點符號查詢memos字段值是一個數(shù)組,并且子文檔memo字段等于"on tiem",by字段等于"shipping"的文檔:
   
復制代碼 代碼如下:
db.inventory.find(
                       { 'memos.memo': 'on time', 'memos.by': 'shipping' }
                 )

        下面的例子使用$elemMatch操作符查詢memos字段值是一個數(shù)組,并且子文檔memo字段等于"on tiem",by字段等于"shipping"的文檔:
       
復制代碼 代碼如下:
db.inventory.find( {
                     memos: {
                                $elemMatch: {
                                              memo : 'on time',
                                              by: 'shipping' }
                            }
                   }
                 )

相關文章

  • MongoDB中數(shù)據(jù)的替換方法實現(xiàn)類Replace()函數(shù)功能詳解

    MongoDB中數(shù)據(jù)的替換方法實現(xiàn)類Replace()函數(shù)功能詳解

    這篇文章主要介紹了MongoDB中數(shù)據(jù)的替換方法實現(xiàn)類Replace()函數(shù)功能詳解,需要的朋友可以參考下
    2020-02-02
  • 在阿里云centos下部署mongodb教程

    在阿里云centos下部署mongodb教程

    這里給大家分享的是作者在阿里云centos下部署mongodb的過程全記錄,非常的詳細,也遇到了很多問題,最終部署成功,希望對大家能夠有所幫助
    2017-08-08
  • mongodb與mysql命令詳細對比

    mongodb與mysql命令詳細對比

    MongoDB的好處挺多的,比如多列索引,查詢時可以用一些統(tǒng)計函數(shù),支持多條件查詢,但是目前多表查詢是不支持的,可以想辦法通過數(shù)據(jù)冗余來解決多表查詢的問題
    2013-08-08
  • mongoDB 4.0事務回滾的辛酸歷程探究

    mongoDB 4.0事務回滾的辛酸歷程探究

    這篇文章主要給大家介紹了關于mongoDB 4.0事務回滾的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用MongoDB具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-07-07
  • MongoDB操作之日期轉換方式(string、ISODate、時間戳)

    MongoDB操作之日期轉換方式(string、ISODate、時間戳)

    這篇文章主要介紹了MongoDB操作之日期轉換方式(string、ISODate、時間戳),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • mongodb?數(shù)據(jù)塊的遷移流程分析

    mongodb?數(shù)據(jù)塊的遷移流程分析

    這篇文章主要介紹了mongodb?數(shù)據(jù)塊的遷移流程介紹,包括數(shù)據(jù)塊遷移對集群性能的影響,建議設置平衡器的活躍時間窗口,設置為業(yè)務低估時進行,具體操作步驟文中有介紹,需要的朋友可以參考下
    2022-04-04
  • MongoDB數(shù)據(jù)庫基礎操作總結

    MongoDB數(shù)據(jù)庫基礎操作總結

    這篇文章主要介紹了MongoDB數(shù)據(jù)庫基礎操作,結合實例形式總結分析了MongoDB數(shù)據(jù)庫創(chuàng)建、刪除、集合、文檔等基本操作技巧,需要的朋友可以參考下
    2020-06-06
  • MongoDB數(shù)據(jù)庫forEach循環(huán)遍歷用法

    MongoDB數(shù)據(jù)庫forEach循環(huán)遍歷用法

    這篇文章主要介紹了MongoDB數(shù)據(jù)庫forEach循環(huán)遍歷用法,需要的朋友可以參考下
    2014-07-07
  • MongoDB實現(xiàn)增刪改查

    MongoDB實現(xiàn)增刪改查

    本文詳細講解了MongoDB實現(xiàn)增刪改查的方法,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-04-04
  • mongodb實現(xiàn)同庫聯(lián)表查詢方法示例

    mongodb實現(xiàn)同庫聯(lián)表查詢方法示例

    在關系型數(shù)據(jù)庫中,通過連接運算符可以實現(xiàn)多個表聯(lián)合查詢。而非關系型數(shù)據(jù)庫的特點是表之間屬于弱關聯(lián),下面這篇文章主要給大家介紹了關于mongodb實現(xiàn)同庫聯(lián)表查詢的相關資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-08-08

最新評論

勐海县| 长丰县| 武陟县| 镶黄旗| 泸西县| 老河口市| 德化县| 大荔县| 永平县| 花莲市| 台湾省| 沅江市| 卢氏县| 嵊州市| 淅川县| 通河县| 平定县| 翁牛特旗| 新闻| 天等县| 四川省| 安宁市| 汉川市| 玛多县| 容城县| 安徽省| 通山县| 肥东县| 县级市| 黔东| 富锦市| 铅山县| 哈巴河县| 杭锦旗| 百色市| 宕昌县| 崇礼县| 浙江省| 和平县| 盘锦市| 崇文区|