一文带你掌握MongoDB的增删查改
Admin 2021-05-13 群英技术资讯 1071 次浏览
很多朋友可能对于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增删查改的操作就介绍到这,上述示例对新手具有一定的借鉴价值,有需要的朋友可以看看,希望对大家有帮助,想要了解更多MongoDB增删查改的操作,可以关注其他相关文章。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
这篇文章给大家分享的是有关MongoDB中skip和limit的作用和使用的内容。小编觉得挺实用的,因此分享给大家做个参考,下面一起跟随小编来学习一下吧。
MongoDB 删除文档 在前面的几个章节中我们已经学习了 MongoDB 中如何为集合添加数据和更新数据。在本章节中我们将继续学习 MongoDB 集合的删除。 MongoDB remove() 函数是用来移除集合中的数据。 MongoDB 数据更新可以使用 update() 函数。在执行 remove() 函数前先执行 find() 命令来判断执行的条件是否正确,这是一个比较好的习惯。 语法 remove() 方法的基本语法格式如..
MongoDB 条件操作符 描述 条件操作符用于比较两个表达式并从mongoDB集合中获取数据。 在本章节中,我们将讨论如何在MongoDB中使用条件操作符。 MongoDB中条件操作符有: (>) 大于 - $gt (<) 小于 - $lt (>=) 大于等于 - $gte (<= ) 小于等于 - $lte 我们使用的数据库名称为'runoob'..
这篇文章主要介绍了mongodb禁止外网访问及添加账号的操作方法,需要的朋友可以参考下
MongoDB 覆盖索引查询 官方的MongoDB的文档中说明,覆盖查询是以下的查询: 所有的查询字段是索引的一部分 所有的查询返回字段在同一个索引中 由于所有出现在查询中的字段是索引的一部分, MongoDB 无需在整个数据文档中检索匹配查询条件和返回使用相同索引的查询结果。 因为索引存在于RAM中,从索引中获取数据比通过扫描文档读取数据要快得多。 使用覆盖索引查询 为了测试覆盖索引查询,使用以下 users 集合: { ..
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008