shell指令碼中mongoDB查詢詳解

2021-09-27 09:22:37 字數 1087 閱讀 5800

本篇博文主要講述, shell中查詢命令, 如何跟標準sql一樣新增各種篩選條件, mongodb中游標的使用等功能,從而弄清楚,mongo是如何駕馭複雜查詢和簡單查詢的

1. 基本的查詢shell命令 :「find"或"findone」

2. 使用"$"條件查詢

查詢特定的值

正規表示式查詢

mongodb可以為字首性正規表示式建立索引 (比如 /^abc/), 換句話說,這樣的查詢會非常高效,為提高效率,可以研究一下 。 一般沒人會把正規表示式本身當做字串插入資料庫, 不過,若有此類資料,正規表示式查詢也會把這條記錄查詢出來

3. 鍵是屬於記憶體還是外層文件

4. 查詢陣列

5 查詢中游標的應用

- 游標

對於資料庫來說,利用游標返回find的執行結果,客戶端對有標的實現可以做到對最終結果做到有效控制,比如排序,限制數量,省略結果。 比如 mysql中 order by 、limit等

- mongo shell中使用游標

shell中 find()方法返回的就是游標物件,示例如下

```json

var cursor = db.people.find();

cursor.foreach(function(x))

```呼叫find(),shell不會立刻查詢資料庫,是在真正要求獲得結果時,才會查詢,所以,可以給查詢新增一些額外的選項,甚至可以做到鏈式呼叫,比如

```json

var cursor = db.people.find().sort().limit(1).skip(10) // 這三個條件沒有先後順序

```mongo此時還不會執行查詢,只是在構造查詢,設執行下一步,需要結果集了,比如

```json

cursor.hasnext()

```這時,查詢會被發往伺服器,shell會立刻獲取前100個結果或者前4m的資料(取最小值), 這樣下次呼叫next不會再查詢伺服器 (書中這樣寫的,數值可以自己測試一下),用光了這批結果,再去查詢資料庫,使用getmore請求查詢更多結果,這個過程會持續到游標耗盡或者結果全部返回

6 . 針對游標的一些操作

7 . 驅動程式

shell中基礎指令碼

shell 指令碼 shell script 是一種為 shell 編寫的指令碼程式。業界所說的 shell 通常都是指 shell 指令碼,但讀者朋友要知道,shell 和 shell script 是兩個不同的概念。由於習慣的原因,簡潔起見,本文出現的 shell程式設計 都是指 shell 指...

shell指令碼中 2 1

在指令碼開發中經常能看到 2 1 比如 2 root cd x php index.php task testone dev null 2 1對於 1 更準確的說應該是檔案描述符 1,而1標識標準輸出,stdout。對於2 表示標準錯誤,stderr。2 1 的意思就是將標準錯誤重定向到標準輸出。這...

shell指令碼中 set ex

剛剛學會了乙個很實用的shell命令set ex,在這裡分享一下。set e 先說說set e,這個引數的含義是,當命令發生錯誤的時候,停止指令碼的執行。通常來說,我們會習慣於使用 來實現這樣的功能,比如 echo 1 rm non existent file echo 2但是,寫成一行呢,可讀性有...