国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫 > MongoDB > 正文

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

2020-10-29 18:41:40
字體:
供稿:網(wǎng)友

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

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

Insert操作:

單條插入

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

循環(huán)插入

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}})

表示查詢結(jié)果包含name字段,不包含_id字段

limit限制查詢結(jié)果集的文檔數(shù)量,指定查詢返回結(jié)果數(shù)量的上限

例子:

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

skip跳過一定數(shù)量的結(jié)果,設(shè)置第一條返回文檔的偏移量

例子:

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

表示跳過前20條文檔

排序:-1降序,1升序

db.user.findOne()

注意事項:MongoDB不支持多集合間的連接查詢,find函數(shù)一次查詢只針對一個集合

比較查詢操作符:

比較操作符 對應(yīng) 參數(shù)
$eq和$ne =和!= {:{$eq:}}
$gt和$gte >和>= {:{$gt:}}
$lt和$lte <和<= {:{$lt:}}
$in和$nin 包含 和 不包含 {:{$in:[,]}}

例子:

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

邏輯查詢操作符:

邏輯操作符 對應(yīng) 參數(shù)
$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數(shù)據(jù)類型編號的文檔

正則匹配

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

$where查詢

可以結(jié)合javascript進行查詢,當javascript返回true時,才返回當前文檔

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

查詢時,$where操作符不能使用索引,每個文檔需要從BSON對象轉(zhuǎn)換成javascript對象后,才可以通過$where表達式運行,因此比常規(guī)查詢要慢,一般要避免使用$where查詢。

還可以存起來用:

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

Update操作:

整體更新

var model=db.user.findOne({"name":"jack"})model.age=44db.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參數(shù)

若update最后參數(shù)加true則修改條件不存在時,自動增加一條如:

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

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

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

Remove操作:

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

希望本文所述對大家MongoDB數(shù)據(jù)庫程序設(shè)計有所幫助。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 湄潭县| 中西区| 宁明县| 九龙城区| 郸城县| 浦北县| 五指山市| 马关县| 霍邱县| 平邑县| 喀什市| 寻乌县| 应用必备| 安化县| 黄梅县| 大竹县| 青神县| 东兰县| 汝城县| 海宁市| 亚东县| 永胜县| 望谟县| 石狮市| 达孜县| 巴南区| 滨海县| 浦北县| 荆门市| 依兰县| 榕江县| 南雄市| 兴义市| 丘北县| 岑溪市| 弋阳县| 师宗县| 平邑县| 德兴市| 丰城市| 阳原县|