程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> DB2數據庫 >> DB2教程 >> MongoDB:好好說說mogodb的增刪改查

MongoDB:好好說說mogodb的增刪改查

編輯:DB2教程

一、insert操作:

mongodb的每一行(文檔,上篇文章說的mongodb的三要素之一)都是采用K-V的方式存儲的,對json熟悉的童鞋學mongodb肯定是手到擒來,對於Value,可能是個字符串,也可能是個數組,又可能是一個內嵌的json對象,相同的規則同樣適用於BSON。

插入操作常見的有兩種方式,單條插入和批量插入:

1、單條插入:

var single={"name":"chenglong","password":"12345","age":20,"address":{"province":"anhui","city":"hefei"},"favourite":["apple","banana"]}

db.user.insert(single)
db.user.find()

可以直接聲明對象,是不是蠻diao的!

2、批量插入,批量插入的方法和單條唯一的區別是,你可以寫個for循環,裡面放入insert語句。就這麼簡單。

二、find操作

平時的開發中,我們經常使用的查詢操作,一般都是下面兩種:

1、> >= < <= != =

2、and or in notin

可喜的是,這些操作在mongodb中已經封裝好了,做開發的都喜歡這種,拿來用就是:

<1>"$gt", "$gte", "$lt", "$lte", "$ne", "沒有特殊關鍵字",這些跟上面1是一一對應的,代碼

>
db.user.find({"age":{$gt:19}})

>=
db.user.find({"age":{$gte:19}})

<
db.user.find({"age":{$lt:22}})

<=
db.user.find({"age":{$lte:22}})

!=
db.user.find({"age":{$ne:22}})

<2> "無關鍵字“, "$or", "$in","$nin" 代碼:

and  無關鍵字
db.user.find({"name":"chenglong","age":20})

or
db.user.find({$or:[{"address.province":"anhui"},{"address.province":"hunan"}]})

in
db.user.find({"address.province":{$in:["anhui","guangdong"]}})

nin
db.user.find({"address.province":{$nin:["anhui","guangdong"]}})

<3>,另外mongodb還能匹配正則表達式,真的很強大!

正則表達式
/* find name startwith 'c' and endwith 'g' */

db.user.find({"name":/^c/,"name":/g$/})

<4>,查詢很復雜的時候,我們還可以用$where來作為我們的大招,因為where中的value,可以放我們js中的方法體!

讓我們查找‘chenglong’

$where
/* find name="chenglong" */

db.user.find({$where:function(){return this.name=='chenglong'}})

\ 

三、update操作

update操作也是無非就兩種,整體更新和局部更新!

<1>,上篇文章中,我們所用的更新,其實就是整體更新。

整體更新
var upd=db.user.findOne({"name":"chenglong"})
upd.age=30
db.user.update({"name":"chenglong"},upd)
db.user.find()
\

<2>,局部更新

有時候我們只需要更新一個字段,mongodb中已經給我們提供了兩個 修改器: $inc 和 $set。

$inc修改器

1、 $inc也就是increase的縮寫,學過sql server 的同學應該很熟悉,比如我們做一個在線用戶狀態記錄,每次修改會在原有的基礎上

自增$inc指定的值,如果“文檔”中沒有此key,則會創建key,下面的例子一看就懂。

db.user.update({"name":"chenglong"},{$inc:{"age":30}})
db.user.find()

\

2、$set修改器
$set修改器
db.user.update({"name":"chenglong"},{$set:{"age":10}})
db.user.find()
\

<3> upsert操作

這個可是mongodb創造出來的“詞”,這個upsert操作就是說:如果我查到這條數據流,就update,如果我沒有查到,我就在數據庫裡面新增一條。其實這樣也有好處,就是避免了我在數據庫裡面判斷是update還是add操作,使用起來很簡單,將update的第三個參數設為true即可。

upsert操作
db.user.update({"name":"chenglong"},{$inc:{"age":11}},true)
\
 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved