本篇文章小编给大家分享一下MongoDB增删查改操作介绍(基于JavaScript Shell),小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看。
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"},{"name":1,"age":1},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"})
茶杯头甜蜜终章dlc 官方手机版v1.0.0.3
下载火柴人传说暗影格斗内置菜单 最新版v3.0.1
下载荒野乱斗测试服 安卓版v61.10.3
下载荒野乱斗彩虹服 安卓版v61.10.3
下载寒霜启示录 安卓版v1.25.10
寒霜启示录是一款生存模拟游戏,不少玩家可能对于末日都有着自己
末日城堡免广告版 安卓最新版v0.7.1
末日城堡免广告版是一款非常好玩的模拟经营类游戏,内部可以不看
甜蜜人生模拟器 最新版v1.4.5
甜蜜人生模拟器是一款非常好玩的模拟恋爱手游,玩家在这里能够对
武器锻造师内置功能菜单 v10.4
武器锻造师内置菜单版是游戏的破解版本,在该版本中为玩家提供了
开放空间overfield 安卓版v1.0.5
开放空间Overfield是一款箱庭养成经营手游,让你在广阔