1. 程式人生 > 資料庫 >MongoDB增刪查改操作示例【基於JavaScript Shell】

MongoDB增刪查改操作示例【基於JavaScript Shell】

本文例項講述了MongoDB增刪查改操作。分享給大家供大家參考,具體如下:

MongoDB自帶了一個JavaScript Shell,所以在其中使用js語法是可以的。

Insert操作:

單條插入

var single={"name":"mei","age":22}
db.user.insert(single);

迴圈插入

var single={"name":"tinyphp","num":28,}
for(var i=0;i<5;i++){single.num=i;db.user.insert(single);}

Find查詢操作:

db.集合名.find(query,fields,limit,skip)

query,指明查詢條件,相當於SQL中的where語句
例子:

db.student.find({"name":"joe","age":{$lt:22}})

fields用於欄位對映,語法格式:{field:0}或{field:1}

例子:

db.student.find({"age":{$lt:22},{"_id":0,"name":1}})

表示查詢結果包含name欄位,不包含_id欄位

limit限制查詢結果集的文件數量,指定查詢返回結果數量的上限

例子:

db.student.find({"name":"joe"},{"name":1,"age":1},5)

skip跳過一定數量的結果,設定第一條返回文件的偏移量

例子:

db.student.find({"name":"joe"},5,20)

表示跳過前20條文件

排序:-1降序,1升序

db.user.findOne()

注意事項:MongoDB不支援多集合間的連線查詢,find函式一次查詢只針對一個集合

比較查詢操作符:

比較操作符 對應 引數
$eq和$ne =和!= {:{$eq:}}
$gt和$gte >和>= {:{$gt:}}
$lt和$lte <和<= {:{$lt:}}
$in和$nin 包含 和 不包含 {:{$in:[,]}}

例子:

/*find age >22*/
db.user.find({"age":{$gt:22}})

邏輯查詢操作符:

邏輯操作符 對應 引數
$and {$and:[{條件1},..,{條件N}]} db.user.find({$and:[{"name":"tinyphp","num":3}]}) 等同 db.user.find({"name":"tinyphp","num":3})
$or {$or:[{條件1},{條件N}]}
$nor {$nor:[{條件1},{條件N}]}
$not 取反 {field:{$not:{條件}}}

元素操作符:

元素操作符 作用
$exists 按照欄位是否存在來查詢文件 {field:{$exists:布林值}} db.user.find({"age":{$exists:true}}) 查詢存在age欄位的文件
$type 選擇欄位值為指定BSON資料型別編號的文件

正則匹配

/* find name 開頭為j的*/
db.user.find({"name":/^j/})

$where查詢

可以結合javascript進行查詢,當javascript返回true時,才返回當前文件

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

查詢時,$where操作符不能使用索引,每個文件需要從BSON物件轉換成javascript物件後,才可以通過$where表示式執行,因此比常規查詢要慢,一般要避免使用$where查詢。

還可以存起來用:

var list=db.user.find();
 list.forEach(function(x){
print(x.name);
})

Update操作:

整體更新

var model=db.user.findOne({"name":"jack"})
model.age=44
db.user.update({"name":"jack"},model)

區域性更新

$inc修改器

/*update bing age+30 */
db.user.update({"name":"bing"},{$inc:{"age":30}})

$set修改器

/*update bing age=10 */
db.user.update({"name":"bing"},{$set:{"age":10}})

update的true引數

若update最後引數加true則修改條件不存在時,自動增加一條如:

db.user.update({"name":"Mark"},{$set:{"age":10}},true)

會自動增加一條記錄:name為mark,age為10

如果加了true,而且條件又滿足則會批量修改,不然就預設只更新第一條

Remove操作:

db.person.remove({"name":"jack"})

希望本文所述對大家MongoDB資料庫程式設計有所幫助。