Mongodb中如何做query查询,SQL语句是什么
Admin 2022-11-22 群英技术资讯 1473 次浏览
今天这篇我们来学习和了解“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进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
PHP7 MongDB 安装与使用 本文教程只适合在 PHP7 的环境,如果你是 PHP5 环境,你可以参阅 PHP MongDB 安装与使用。 PHP7 Mongdb 扩展安装 我们使用 pecl 命令来安装: $ /usr/local/php7/bin/pecl install mongodb 执行成功后,会输出以下结果: …… Build process completed successfully Installing &..
mongoDB中两个表之间的关联查询:首先两个表中要有关联信息,例如两个表中都有邮箱这一信息。关键步骤:{ $unwind: "$Users" },表示把从User表中查询的数据字段,作为订单表(PrepurchaseOrder)中的字段。
这篇文章给大家分享的是有关MongoDB中skip和limit的作用和使用的内容。小编觉得挺实用的,因此分享给大家做个参考,下面一起跟随小编来学习一下吧。
TTL索引用于什么,怎样使用的呢?有不少朋友对此感兴趣,下面小编给大家整理和分享了相关知识和资料,易于大家学习和理解,有需要的朋友可以借鉴参考,下面我们一起来了解一下吧。
mongodb复制集搭建步骤:1、为不同节点创建不同的db文件夹;2、启动三个节点;3、连接主节点,并启动副本集;4、添加从节点,仲裁节点;5、测试复制集secondary节点数据复制功能;6、测试复制集主从节点故障转移功能。
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
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