mongodb入門之mongodb基本語法

主要介紹下mongodb的基本語法,增刪改查等

我們都熟悉mysql和oracle的基本操作,這裏介紹mongodb的基本語法

首先要比較下mysql和mongodb的差別


mysql和oracle都有實例的概念,即數據庫實例。而mongodb同樣有實例的概念,只是初始化默認提供test數據庫


mongodb基本語法實戰

mongodb的客戶端是一個js編譯器,所以支持js語法,默認連接的是test數據庫

1.insert操作

>db.test.insert({"name":"jack","age":20})

>db.test.insert({"name":"tom","age":23})

>db.test.insert({"name":"tom","age":null})

2.find操作

注意:_id自動是數據庫默認的guid,保證數據的唯一性;安裝bson的相識書寫文檔,不符合語法會提示錯誤

>db.test.find()

>db.test.find({"name":"tom"})

(1)一個查詢document裏可以包含多個條件,默認多條件之間是and關係

>db.test.find({"name":"tom","age":23})

(2)有時候我們並不需要查詢的所有內容,可以指定查詢返回的內容

比如我們只需要name的信息,可以執行

>db.test.find({},{"name":1})

如果不想顯示_id鍵,那麼可以執行

>db.test.find({},{"name":1,"_id":0})

(3)查詢條件

<1>$lt,$lte,$gt,$gte分別對應<,<=,>,>=

比如查詢age在18-22之間的用戶

>db.test.find({"age":{"$gte":18,"$lte":22}})

<2>or查詢

比如查詢年齡是20或24的數據,可以執行

>db.test.find({"age":{"$in":[20,24]}})

與in相反的是nin,如下

>db.test.find({"age":{"$nin":[20,24]}})

如果是多個條件的or查詢,譬如查詢年齡在20或24的,或名字都叫做tom的數據

>db.test.find({"$or":[{"age":{"$in":[20,24]}},{"name":"tom"}]})

<3>$not使用,在前邊操作的基礎上相反

>db.test.find({"age":{"$in":[20,24]}})

>db.test.find({"age":{"$not":{"$in":[20,24]}}})

(4)特殊類型查詢

查詢null,null同時匹配自身和不存在的key

>db.test.find({"age":null})

>db.test.find({"age1":null})

(5)正則表達式

>db.test.find({"name":/tom/i})

mongodb是使用perl來匹配正則表達式,所以pcre允許的語法都可以在mongodb中使用

(6)查詢數組

>db.food.insert({"fruit":["apple", "banana", "peach"]})

查找水果裏有香蕉的ducoment

>db.food.find({"fruit":"banana"})

查詢既有apple又有banana的document

(7)查詢嵌入document

>db.test.insert({"name":{"first":"Joe","last":"Schmoe"},"age":45})

>db.test.find({"name.first":"Joe","name.last":"Schmoe"})

(8)where查詢

假如有個list,想查詢key的值裏有相等的document

>db.foo.insert({"apple":1,"banana":6,"peach":3})

>db.foo.insert({"apple":1,"spinach":4,"watermelon":4})

第二個document裏,菠菜和西瓜等值,這個應該查詢到

>db.foo.find({"$where":function() {

for (var current in this) {

for (var other in this) {

if (current != other && this [current] == this [other])

  return true;

}

         }

}

return false;

}})

(9)遊標


3.update操作

注意:update方法的第一個參數是查找的條件,第二個參數是更新的值

>db.test.update({"name":"tom"},{"name":"tom","age":35})

4.remove操作

>db.test.remove({"name":"tom"})



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章