javascript
java调用js查询mongo_MongoDB增删查改操作示例【基于JavaScript Shell】
本文實(shí)例講述了MongoDB增刪查改操作。分享給大家供大家參考,具體如下:
MongoDB自帶了一個(gè)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,指明查詢條件,相當(dāng)于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()
注意事項(xiàng):MongoDB不支持多集合間的連接查詢,find函數(shù)一次查詢只針對一個(gè)集合
比較查詢操作符:
比較操作符
對應(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ù)類型編號(hào)的文檔
正則匹配
/* find name 開頭為j的*/
db.user.find({"name":/^j/})
$where查詢
可以結(jié)合javascript進(jìn)行查詢,當(dāng)javascript返回true時(shí),才返回當(dāng)前文檔
db.user.find({$where:function(){return this.name=='jack'}})
查詢時(shí),$where操作符不能使用索引,每個(gè)文檔需要從BSON對象轉(zhuǎn)換成javascript對象后,才可以通過$where表達(dá)式運(yùn)行,因此比常規(guī)查詢要慢,一般要避免使用$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參數(shù)
若update最后參數(shù)加true則修改條件不存在時(shí),自動(dòng)增加一條如:
db.user.update({"name":"Mark"},{$set:{"age":10}},true)
會(huì)自動(dòng)增加一條記錄:name為mark,age為10
如果加了true,而且條件又滿足則會(huì)批量修改,不然就默認(rèn)只更新第一條
Remove操作:
db.person.remove({"name":"jack"})
希望本文所述對大家MongoDB數(shù)據(jù)庫程序設(shè)計(jì)有所幫助。
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的java调用js查询mongo_MongoDB增删查改操作示例【基于JavaScript Shell】的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux maven自动构建,Cent
- 下一篇: java jackson 注解,java