標籤:
db.collectionname.find(<criteria>, <projection>)
<criteria> 可選 類型 文檔 文檔的過濾條件
<projection> 可選 類型 文檔 對結果進列欄位的匹配 {欄位1:<booleadn>,欄位2:<boolean>...} (也就是第二個參數能控制我們在過濾條件下結果欄位的顯示)
當我們不提供任何參數的時候,就是查詢整個文檔
下面的例子對結果欄位進行了匹配
上面的例子我們首先選擇了id為2的文檔,並且在結果中我們只想要對bigname進行顯示
好奇的你 一定會這麼做
能不能顯示id不顯示bigname這個欄位呢 duangduangduang 報錯了 意思是你不能將包含和不包含欄位的寫法融合在一起(排除_id 這個mongodb提供的_id能是實現包含和不包含融合在一起) 上例子
也就是當我們只想要一列的時候 我們可以通過上面的方式 多列的時候就多幾個類的參數為1 或者我們只想要一列不顯示的時候設定一列的參數為0
並且在db.collectionname.find() 後面還可以加一些 查詢遊標的方法 例如 limit()限制結果集數量 skip()跳過一定的條目,返回結果集 sort() 排序
首先我在資料庫中插入了許多id不同的資料 測試上面幾個遊標方法
上面的使用sort()的遊標 屬性的值為1的時候是升序 屬性值是-1 的時候是降序
or的用法
$lt |
< |
$lte |
<= |
$gt |
> |
$gte |
>= |
$in |
in |
$nin |
not in |
$ne |
!= |
參照上面的幾個操作符 ,我們進行幾個尋找操作
匹配null 這個是查詢不存在該欄位的文檔值
like查詢
注意最下面的兩條就是通過like查詢出來了 只有前匹配或者後匹配的情況下 就要將不進行匹配的進行轉移
上面的例子是後匹配的like
在這裡添加一個關於collection的操作 db.collectionname.count() 查詢資料集的文檔數量
where 查詢
db.collectionname.count(<query>) 符合query的條目數
db.collectionname.remove(<query>,justone) justone 布爾值 為true的時候只刪除一個文檔
首先當我們想要刪除一個collection中所有的文檔的時候 db.collection.remove({}) 這裡必須提供一個空的對象 實現全部刪除的目的
當我們不提供第二個參數的時候,預設為false 就是從文檔中刪除所有匹配query的項
mongodb 數組查詢
文檔的結構中是可以儲存數組的 那我們怎麼實現數組的查詢呢?
如果你提供的key值後面的value值是一個數組的話 當你提供的value在儲存的key的value值的數組中時 mongodb就是返回我們需要的結果
上面我們發現有一條文檔記錄的value值並不是數組 也就是mongodb的find()的方法既能匹配數組的值 也能匹配單一的值 上面的例子是會匹配所有name的值包含a的數組的文檔或者name的值是a的文檔
匹配特定的數組 (其實這個沒有什麼特別 只是列出來 跟下面的作對比)
我們要匹配包含一部分的數組的值的時候呢 也就是匹配數組的一部分值
根據數組的元素的長度進行匹配
向數組內添加值
$push 這個操作只能對一個value是數組的文檔項使用 如果不存在該key的值 建立數組項
$pushAll push後面的參數就是要添加到數組中的值 如果它是一個數組那麼就在數組中添加一個數組 $pushAll 是同時將多個值添加到數組中 其中的每一個項一次添加到數組中
(區分它們兩個就是一個和多個的區別)
$pop 當後面的值是1的時候刪除最後一個數組項 後面的值是-1的時候刪除第一個數組項
$pull 從數組中刪除一個特定的值
$pullAll 從數組中刪除多個值
上面的例子中有兩個相同的值 可以看見它們都被刪除了
mongodb 基本指令學習 (2)