天天看點

MongoDB新增及查詢資料(一)

新增操作

    insert函數會添加一個文檔到集合裡面。例如我們要登記一個人的資訊,首先我們在shell力建立一個局部變量person,其記錄了人的姓名和性别,我們通過db.persons.insert(person)想集合persons中插入一條記錄,通過db.persons.findOne()查詢剛才插入的記錄。

MongoDB新增及查詢資料(一)

                                                                             圖 7.新增操作

插入的時候需要注意一下幾點:

1. 由于MongoDB是無模式的,是以不要預先定義和建立一個集合,在第一次插入的時候會自動建立。

2. 文檔中可以存儲任何結構的資料,當然在實際應用中我們存儲的是相同類型的文檔。

3. 每次插入資料的時候,如果沒有”_id”字段,MongoDB會自動為文檔生成此字段和值。

MongoDB新增及查詢資料(一)

                                                                                    圖 8.一個集合可以承載不同的文檔

查詢操作

mongoDB使用find進行查詢,find的第一個參數決定了查詢要傳回那些文檔,其形式也是一個文檔,說明要執行的查詢細節。空的查詢文檔{}會比對集合的全部内容。find()會傳回集合裡的所有文檔。如果需要查詢擷取第一條資料可以使用findOne();

MongoDB新增及查詢資料(一)

                                                                                       圖 9.使用find和findOne查詢集合

使用find()傳回一個遊标對象,但是shell會自動周遊遊标傳回一個初始化的set,并允許我們繼續使用一個疊代輸出。不過我們也可以直接使用遊标來輸出。

MongoDB新增及查詢資料(一)

                                                                              圖 10.使用it周遊查詢結果

通過遊标和while也可以周遊查詢結果。

MongoDB新增及查詢資料(一)

                                                             圖 11.使用遊标檢視查詢結果

有時我們并不需要查詢集合的所有鍵值對,這時我們可以使用findOne或者find的第二個參數指定想要傳回的鍵。這樣既可以節省傳輸的流量,又能節省用戶端解碼文檔的時間和記憶體消耗;

MongoDB新增及查詢資料(一)

                                                            圖 12.查詢結果傳回指定字段

查詢條件中的值必須是常量,不能引用文檔中其他鍵的值。

MongoDB新增及查詢資料(一)

                                                         圖 13.查詢條件中不能引用其他字段作為值

mongoDB提供了比較操作符,$lt(<),$lte(<=),$gt(>),$gte(>=),$ne(!=)

MongoDB新增及查詢資料(一)

                                                                 圖 14.查詢中的比較操作符

mongoDB中有兩種方式可以進行or查詢,$in可以用來查詢一個鍵等于多個值的記錄,與其對應的是$nin。

MongoDB新增及查詢資料(一)

                                                                         圖 15.查詢中的or和in