加入收藏 | 设为首页 | 会员中心 | 我要投稿 汽车网 (https://www.0577qiche.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 系统 > 正文

MongoDB的增删查改

发布时间:2023-09-22 13:09:09 所属栏目:系统 来源:
导读: 很多朋友可能对于MongoDB并不是很熟悉,因此这篇文章主要给大家介绍JavaScript Shell的MongoDB增删查改操作,感兴趣的朋友可以参考学习,下面我们一起来看看。

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"},{"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"})
 
       关于MongoDB增删查改的操作就介绍到这,上述示例对新手具有一定的借鉴价值,有需要的朋友可以看看,希望对大家有帮助.

(编辑:汽车网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章