Mongodb中如何做query查询,SQL语句是什么
Admin 2022-11-22 群英技术资讯 1551 次浏览
今天这篇我们来学习和了解“Mongodb中如何做query查询,SQL语句是什么”,下文的讲解详细,步骤过程清晰,对大家进一步学习和理解“Mongodb中如何做query查询,SQL语句是什么”有一定的帮助。有这方面学习需要的朋友就继续往下看吧!Mongodb最大的功能之一就是它支持动态查询,就跟传统的关系型数据库查询一样,但是它的查询来的更灵活。
一、 Query Expression Objects:查询表达式对象
查询表达式文档也是一个BSON结构的文档,例如,我们可以用下面的查询语句来查询集合中的所有记录:
db.users.find({})
这里,表达式对象是一个空文档,在查询的时候去去匹配所有的记录。再看:
代码如下:
这里,我们将会查询出所有“last_name”属性值为“Smith”的文档记录。
二、查询选项
除了查询表达式意外,Mongodb还支持一些额外的参数选项。例如,我们可能仅仅只想返回某些特定的字段值:
代码如下:
注: _id字段始终都会被返回,哪怕没有明确指定
三、查询条件
1) , >=
// 大于: field > value
db.collection.find({ "field" : { $gt: value } } );
//小于:field = value
db.collection.find({ "field" : { $gte: value } } );
//小于等于:field
2) $all
$all操作类似$in操作,但是不同的是,$all操作要求数组里面的值全部被包含在返回的记录里面,如:
> use test;
switched to db test
> db.things.insert({a:[1,2,3]});
> db.things.find();
{ "_id" : ObjectId("4de73360059e7f4bdf907cfe"), "a" : [ 1, 2, 3 ] }
> db.things.find({a:{$all:[2,3]}});
{ "_id" : ObjectId("4de73360059e7f4bdf907cfe"), "a" : [ 1, 2, 3 ] }
> db.things.find({a:{$all:[1,2,3]}});
{ "_id" : ObjectId("4de73360059e7f4bdf907cfe"), "a" : [ 1, 2, 3 ] }
> db.things.find({a:{$all:[1]}});
{ "_id" : ObjectId("4de73360059e7f4bdf907cfe"), "a" : [ 1, 2, 3 ] }
> db.things.find({a:{$all:[1,2,3,4]}});
3) $exists
$exists操作检查一个字段是否存在,如:
> for(var i=0;i db.user.find({userid:{$exists:true}}).limit(5);
{ "_id" : 0, "name" : "user0", "userid" : 0, "age" : 20 }
{ "_id" : 1, "name" : "user1", "userid" : 1, "age" : 20 }
{ "_id" : 2, "name" : "user2", "userid" : 2, "age" : 20 }
{ "_id" : 3, "name" : "user3", "userid" : 3, "age" : 20 }
{ "_id" : 4, "name" : "user4", "userid" : 4, "age" : 20 }
//不包含sex字段
> db.user.find({sex:{$exists:false}}).limit(5);
4) $mod
$mod操作可以让我们简单的进行取模操作,而不需要用到where子句,如:
//where子句
> db.user.find("this._id%10==1").limit(5);
{ "_id" : 1, "name" : "user1", "userid" : 1, "age" : 20 }
{ "_id" : 11, "name" : "user11", "userid" : 11, "age" : 20 }
{ "_id" : 21, "name" : "user21", "userid" : 21, "age" : 20 }
{ "_id" : 31, "name" : "user31", "userid" : 31, "age" : 20 }
{ "_id" : 41, "name" : "user41", "userid" : 41, "age" : 20 }
//$mod操作
> db.user.find({_id:{$mod:[10,1]}}).limit(5);
{ "_id" : 1, "name" : "user1", "userid" : 1, "age" : 20 }
{ "_id" : 11, "name" : "user11", "userid" : 11, "age" : 20 }
{ "_id" : 21, "name" : "user21", "userid" : 21, "age" : 20 }
{ "_id" : 31, "name" : "user31", "userid" : 31, "age" : 20 }
{ "_id" : 41, "name" : "user41", "userid" : 41, "age" : 20 }
5) $ne
$ne意思是not equal,不等于,不用多说,看例子:
> db.user.find().limit(5);
{ "_id" : 0, "name" : "user0", "userid" : 0, "age" : 20 }
{ "_id" : 1, "name" : "user1", "userid" : 1, "age" : 20 }
{ "_id" : 2, "name" : "user2", "userid" : 2, "age" : 20 }
{ "_id" : 3, "name" : "user3", "userid" : 3, "age" : 20 }
{ "_id" : 4, "name" : "user4", "userid" : 4, "age" : 20 }
> db.user.find({_id:{$ne:0}}).limit(5);
{ "_id" : 1, "name" : "user1", "userid" : 1, "age" : 20 }
{ "_id" : 2, "name" : "user2", "userid" : 2, "age" : 20 }
{ "_id" : 3, "name" : "user3", "userid" : 3, "age" : 20 }
{ "_id" : 4, "name" : "user4", "userid" : 4, "age" : 20 }
{ "_id" : 5, "name" : "user5", "userid" : 5, "age" : 20 }
6) $in
$in操作类似于传统关系数据库中的IN,看例子:
//数据库中有所有数组对应的记录
> db.user.find({_id:{$in:[2,3,4,5,6]}}).limit(5);
{ "_id" : 2, "name" : "user2", "userid" : 2, "age" : 20 }
{ "_id" : 3, "name" : "user3", "userid" : 3, "age" : 20 }
{ "_id" : 4, "name" : "user4", "userid" : 4, "age" : 20 }
{ "_id" : 5, "name" : "user5", "userid" : 5, "age" : 20 }
{ "_id" : 6, "name" : "user6", "userid" : 6, "age" : 20 }
//因为数据库中没有_id=1111的记录
> db.user.find({_id:{$in:[2,3,4,5,1111]}}).limit(5);
{ "_id" : 2, "name" : "user2", "userid" : 2, "age" : 20 }
{ "_id" : 3, "name" : "user3", "userid" : 3, "age" : 20 }
{ "_id" : 4, "name" : "user4", "userid" : 4, "age" : 20 }
{ "_id" : 5, "name" : "user5", "userid" : 5, "age" : 20 }
7) $nin
$nin跟$in操作相反,看例子:
//扣掉_id=1/2/3/4的记录
> db.user.find({_id:{$nin:[1,2,3,4]}}).limit(5);
{ "_id" : 0, "name" : "user0", "userid" : 0, "age" : 20 }
{ "_id" : 5, "name" : "user5", "userid" : 5, "age" : 20 }
{ "_id" : 6, "name" : "user6", "userid" : 6, "age" : 20 }
{ "_id" : 7, "name" : "user7", "userid" : 7, "age" : 20 }
{ "_id" : 8, "name" : "user8", "userid" : 8, "age" : 20 }
8) $nor、$or
$nor跟$or相反,不好解释,看例子:
> db.user.find({$nor:[{_id:2},{name:'user3'},{userid:4}]}).limit(5);
{ "_id" : 0, "name" : "user0", "userid" : 0, "age" : 20 }
{ "_id" : 1, "name" : "user1", "userid" : 1, "age" : 20 }
{ "_id" : 5, "name" : "user5", "userid" : 5, "age" : 20 }
{ "_id" : 6, "name" : "user6", "userid" : 6, "age" : 20 }
{ "_id" : 7, "name" : "user7", "userid" : 7, "age" : 20 }
> db.user.find({$or:[{_id:2},{name:'user3'},{userid:4}]}).limit(5);
{ "_id" : 2, "name" : "user2", "userid" : 2, "age" : 20 }
{ "_id" : 3, "name" : "user3", "userid" : 3, "age" : 20 }
{ "_id" : 4, "name" : "user4", "userid" : 4, "age" : 20 }
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
MongoDB 条件操作符 描述 条件操作符用于比较两个表达式并从mongoDB集合中获取数据。 在本章节中,我们将讨论如何在MongoDB中使用条件操作符。 MongoDB中条件操作符有: (>) 大于 - $gt (<) 小于 - $lt (>=) 大于等于 - $gte (<= ) 小于等于 - $lte 我们使用的数据库名称为'runoob'..
MongoDB 高级索引 考虑以下文档集合(users ): { 'address': { 'city': 'Los Angeles', 'state': 'California', 'pincode': '123' }, 'tags..
MongoDB 覆盖索引查询 官方的MongoDB的文档中说明,覆盖查询是以下的查询: 所有的查询字段是索引的一部分 所有的查询返回字段在同一个索引中 由于所有出现在查询中的字段是索引的一部分, MongoDB 无需在整个数据文档中检索匹配查询条件和返回使用相同索引的查询结果。 因为索引存在于RAM中,从索引中获取数据比通过扫描文档读取数据要快得多。 使用覆盖索引查询 为了测试覆盖索引查询,使用以下 users 集合: { ..
MongoDB PHP 扩展 本教程将向大家介绍如何在Linux、window、Mac平台上安装MongoDB扩展。 Linux 上安装 MongoDB PHP 扩展 在终端上安装 你可以在 Linux 中执行以下命令来安装 MongoDB 的 PHP 扩展驱动 $ sudo pecl install mongodb 使用php的pecl安装命令必须保证网络连接可用以及root权限。 安装手册 如果你想通过源码来编译扩展驱动。你..
下面小编就为大家带来一篇基于MongoDB数据库索引构建情况全面分析。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008