亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MongoDB筆記(三)

發布時間:2020-02-27 11:14:30 來源:網絡 閱讀:1969 作者:177777771 欄目:MongoDB數據庫

一、MongoDB數據查詢

    (1)MongoDB使用find函數來數據查詢,其功能與SQL中的select函數相同,可以提供與關系型數據庫類似的許多功能,包括映射、排序等。

    db.集合名.find(query,fields,limit,skip)

    1.query相當于SQL中的where語句

    2.fields用于字段映射,1的時候表示顯示0是不顯示,語法格式:{field:0}或{field:1}用時候要么全用0要么全用1,混合使用的話除了"_id":0 以外的混合用法是錯誤的。

    3.limit 限制查詢結果集的文檔數量。

    4.skip跳過一定數據量的結果,設置第一條返回文檔的偏移量。

    (2)MongoDB與注意事項

    1.MongoDB不支持多集合間的連接查詢,find函數一次查詢只能針對一個集合。

    2.find參數為空或者查詢條件為空文檔時,會返回集合中所以的文檔。

    3.除了將limit和skip作為find函數的參數外,還可以單獨使用limit和skip函數來修飾查詢結果。

    例如:db.student.find({age:{$lt:22}}).limit(5).skip(10)

    4.返回的查詢結果集默認是無序的,如果需要對結果進行排序,可以使用sort函數。1表示升序-1為降序。

    例如:db.student.find().sort({name:1,age:-1})

    5.db.collection.findOne()只會返回第一條數據。

    6.當查詢的集合文檔數量很大時,為了加快數據的查詢速度可以創建索引。

    7.除了使用find函數實現基本查詢之外,MongoDB還提供了聚合框架,用于復雜查詢。


二、查詢操作符介紹及使用

    (1)比較查詢操作符

MongoDB筆記(三)

    (2)邏輯查詢操作符

    邏輯查詢操作符,可連接多個查詢條件,用于邏輯與、或、非以及取反操作。

MongoDB筆記(三)

    (3)元素操作符

    元素查詢操作符,用來查詢文檔中字段的屬性,包括字段是否存在以及字段的數據類型。

MongoDB筆記(三)


三、MogoDB的游標

    使用find函數進行查詢時,MongoDB并不是一次返回結果集中的所有文檔,而是分批次的返回結果,返回的數據量不會多余4M,默認情況下會返回結果集的101個文檔或者1M的數據(看哪個條件先滿足就用誰)。返回的文檔會緩存到內存中,同時會有一個cursor游標指向該批結果集中的第一個,當游標遍歷到完最后一個文檔時,游標將自動向MongoDB數據庫發送一個getMore數據請求得到下一批的結果集。

MongoDB筆記(三)

    (1)使用游標時要注意下面幾個問題。

    1.當調用find函數時,shell并不立即查詢數據庫,而是等真正開始游標的hasNext使用時(獲取結果時)才發送查詢請求。

    2.游標對象的每個方法幾乎都返回游標對象本身,這樣就可以方便的進行鏈式函數調用。

    3.如果不將find函數返回的游標賦值給一個局部變量進行保存的話,默認情況下游標會自動迭代20次。想要手動迭代就必須賦值給一個局部變量,然后用提供的函數進行迭代。

    (2)游標的生命周期(創建、使用以及銷毀)

    當客戶端使用find函數向服務器端發起一次查詢請求時,會在服務器端創建一個游標,然后就可以使用游標函數來操作查詢結果。

    下面三種情況會讓游標銷毀:

    1.游標遍歷完成后,或者客戶端主動發送終止消息。

    2.客戶端保存的游標變量不在作用域內。

    3.在服務器端10分鐘內未對游標進行操作。

    (3)游標快照

    游標因為沒有隔離性,所以游標可能會返回那些由于體積變大而被移動到集合末尾的文檔。為解決這一問題的方法是對查詢進行快照。其語法如下:

    db.collection.find().snapshot()

    使用快照后,查詢就會在_id索引上來遍歷執行,這樣就可以保證每個文檔只會被返回一次,從而保證獲取結果的一致性。但快照會使得查詢速度變慢,使用需謹慎。


四、findAndModify函數的使用

MongoDB筆記(三)

    findAndModify與update函數的比較:

    1.都以原子的方式來更新修改文檔

    2.當多個文檔滿足query條件時:

    ①findAndModify使用sort選項,對結果排序,選擇第幾個文檔。

    ②update不能選擇具體更新哪一個文檔。

    3.update可以一次修改多個文檔,findAndModify不行。

    4.update可以設置寫的安全級別findAndModify不行。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

阳高县| 益阳市| 漳州市| 略阳县| 崇义县| 孟津县| 雷州市| 丹阳市| 青龙| 潢川县| 印江| 获嘉县| 库尔勒市| 玛沁县| 仪征市| 曲水县| 政和县| 镇雄县| 宽甸| 丰县| 莲花县| 石台县| 通城县| 得荣县| 齐河县| 桦南县| 蛟河市| 额济纳旗| 遂昌县| 祁东县| 贞丰县| 耒阳市| 鹿邑县| 砀山县| 巩留县| 兖州市| 新安县| SHOW| 铜鼓县| 阿克陶县| 商河县|