日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

mongodb3.2系统性学习——5、游标 模糊查询 findAndModify函数

發布時間:2025/7/14 windows 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mongodb3.2系统性学习——5、游标 模糊查询 findAndModify函数 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1首先介紹查詢結果 返回的過程:

?進行查詢的時候mongodb 并不是一次哪個返回結果集合的所有文檔,而是以多條文檔的形式分批返回查詢的結果,返回文檔到內存中。

?

好處:

  • 減少了客戶端與服務器端的查詢負擔。
  • 查詢的結果集合很大的時候批量返回數據,提高了效率。

注意事項

  • 如果執行查詢的時候不使用 var keyword 則查詢的結果會自動迭代 20次。
  • cursor 游標第一次返回101條文檔或者4兆 數據(誰先滿足)。
  • 不活躍的游標會在10分鐘內自動關閉,或者客戶端主動關閉游標,如果讓游標一致有效果 可以使用? cursor.noCursorTimeout() 實例? var myCursor = db.inventory.find().noCursorTimeout(); ? 然后必須主動關閉游標 ?cursor.close() 或者迭代完畢,否則一致消耗系統資源。
  • 驅動或者命令行調用find操作的時候并不會立即查詢數據,而是等到真正開始獲取數據的時候(hasnext)才發送查詢的請求。
  • db.**.find().sort({age:1}).limit(2).skip(10) 執行時候跟順序無關。
  • 游標對象每個方法返回都是游標,方便進行鏈式調用。

接下來比較重要的一點:游標快照

mongodb 在整個生命周期中沒有隔離性,當查詢結果集很大且在查詢的結果集上進行更新操作的時候,可能會返回多次同一個文檔。游標可能會返回那些因為體積變大而被移動到集合的末尾的文檔,因為MMAPv1 存儲引擎(3.2版本的存儲引擎已經變為:WiredTiger), 解決方法是對查詢進行快照,db.**.find().snapshot(); 使用快照之后查詢會在_id索引上執行遍歷的操作,保證每一個文檔只被返回一次,保證結果的一致性。但是會使查詢變慢。

下面介紹一下 mongodb 的存儲引擎:

?mmapv1存儲引擎的分配策略:如果一個文檔更新操作查過了文檔在磁盤的預先分配的空間,mongodb 會在磁盤上分配一塊更大的空間,缺點是:如果集合中有很多索引的話 會花費較多的時間,3.0版本修改了默認的分配策略改為:2的N次方分配策略。有利于減少系統的碎片數量

                                                                                                                減少移動的頻次,提高了寫效率。      

?

轉載于:https://www.cnblogs.com/timelesszhuang/p/5205447.html

總結

以上是生活随笔為你收集整理的mongodb3.2系统性学习——5、游标 模糊查询 findAndModify函数的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。