MongoDB查询与游标之分布式文件存储的方法是什么

您所在的位置:网站首页 mongodb不等于查询 MongoDB查询与游标之分布式文件存储的方法是什么

MongoDB查询与游标之分布式文件存储的方法是什么

2023-04-06 00:29| 来源: 网络整理| 查看: 265

MongoDB查询与游标之分布式文件存储的方法是什么 发布时间:2023-04-03 11:41:55 来源:亿速云 阅读:97 作者:iii 栏目:开发技术

本篇内容主要讲解“MongoDB查询与游标之分布式文件存储的方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MongoDB查询与游标之分布式文件存储的方法是什么”吧!

一、查询1、find()基本用法

查询就是返回集合中文档的一个子集,子集的范围从0个文档到整个集合。要返回哪些文档由find的第一个参数决定,该参数是一个用于指定查询条件的文档。

如果是空,则返回全部文档。

当向查询文档中添加键值对时,就意味着限定了查询条件。例如db.users.find({"name":"哪吒编程"})

可以在查询文档时,传入多个键值对,相当于关系型数据库中的where ... and ...。

2、指定要返回的键

有时候,只想查询文档中的部分键

> db.users.find({},{"id":1,"dept":1}) { "_id" : ObjectId("638b2822bb535f1c23f9b09a"), "id" : "1", "dept" : [ { "name" : "哪吒编程", "age" : 18, "address" : "大连" }, { "name" : "云韵", "age" : 19, "address" : "大连" }, { "name" : "美杜莎", "age" : 28, "address" : "北京" } ] } { "_id" : ObjectId("638b3944bb535f1c23f9b09b"), "id" : "1", "dept" : [ { "name" : "哪吒编程", "age" : 18, "address" : "大连" }, { "name" : "云韵", "age" : 19, "address" : "大连" }, { "name" : "美杜莎", "age" : 28, "address" : "北京" } ] } > db.users.find({},{"_id":0,"dept":1}) { "dept" : [ { "name" : "哪吒编程", "age" : 18, "address" : "大连" }, { "name" : "云韵", "age" : 19, "address" : "大连" }, { "name" : "美杜莎", "age" : 28, "address" : "北京" } ] } { "dept" : [ { "name" : "哪吒编程", "age" : 18, "address" : "大连" }, { "name" : "云韵", "age" : 19, "address" : "大连" }, { "name" : "美杜莎", "age" : 28, "address" : "北京" } ] }3、查询条件

$lt、$lte、$gt、$gte都属于比较运算符,分别对应=。

可以将其组合使用以查找一个范围内的值。

> db.users.find({"dept.age":{"$gte":20,"$lte":30}})4、or查询

MongoDB中有两种方式可以进行or查询。$in可以用来查询一个键的多个值。$or则更通用一些,可以在多个键中查询任意的给定值。

> db.users.find({"id":{"$in":["1","3"]}}) { "_id" : ObjectId("638b2822bb535f1c23f9b09a"), "id" : "1", "dept" : [ { "name" : "哪吒编程", "age" : 18, "address" : "大连" }, { "name" : "云韵", "age" : 19, "address" : "大连" }, { "name" : "美杜莎", "age" : 28, "address" : "北京" } ] } { "_id" : ObjectId("638b3944bb535f1c23f9b09b"), "id" : "1", "dept" : [ { "name" : "哪吒编程", "age" : 18, "address" : "大连" }, { "name" : "云韵", "age" : 19, "address" : "大连" }, { "name" : "美杜莎", "age" : 28, "address" : "北京" } ] } { "_id" : ObjectId("638b4cacbb535f1c23f9b09c"), "id" : "3", "dept" : [ { "name" : "哪吒编程", "age" : 18, "address" : "大连" }, { "name" : "云韵", "age" : 19, "address" : "大连" }, { "name" : "美杜莎", "age" : 28, "address" : "北京" } ] } >5、$not

$not是一个元条件运算符,可以用于任何其它条件之上。

二、特定类型的查询1、null

null的行为有一些特别。它可以与自身匹配。

> db.users.find({"dept":null}) { "_id" : ObjectId("638b538682bdbdfa72665a11"), "id" : "1", "dept" : null }2、正则表达式

"$regex"可以在查询中为字符串的模式匹配提供正则表达式功能。正则表达式对于灵活的字符串匹配非常有用。

> db.users.find({"name":{"$regex":"哪吒"}})) { "_id" : ObjectId("638b549982bdbdfa72665a12"), "id" : "1", "name" : "哪吒编程", "age" : 18 } { "_id" : ObjectId("638b54cd82bdbdfa72665a15"), "id" : "1", "name" : "CSDN哪吒", "age" : 18 }

MongoDB会使用Perl兼容的正则表达式(PRCE)库来对正则表达式进行匹配。任何PCRE支持的正则表达式语法都能被MongoDB接受。

3、查询数组

$all可以通过多个元素匹配数组。

> db.workers.find({name:{$all:["哪吒编程","云韵"]}}) { "_id" : ObjectId("638b2154bb535f1c23f9b098"), "id" : "1", "name" : [ "哪吒编程", "云韵" ] } { "_id" : ObjectId("638b59fc82bdbdfa72665a16"), "id" : "1", "name" : [ "哪吒编程", "云韵", "美杜莎" ] } { "_id" : ObjectId("638b59fc82bdbdfa72665a17"), "id" : "2", "name" : [ "哪吒编程", "云韵", "纳兰嫣然" ] }

如果想在数组中查询特定位置的元素,可以使用key.index语法来指定下标:

> db.workers.find({"name.2":"美杜莎"}) { "_id" : ObjectId("638b59fc82bdbdfa72665a16"), "id" : "1", "name" : [ "哪吒编程", "云韵", "美杜莎" ] }

通过$size指定要查找的数组的大小:

> db.workers.find({"name":{"$size":2}}) { "_id" : ObjectId("638b2154bb535f1c23f9b098"), "id" : "1", "name" : [ "哪吒编程", "云韵" ] }4、数组与范围查找的相互作用

先举一个例子:

> db.student.find() { "_id" : ObjectId("638b6b8382bdbdfa72665a19"), "id" : "1", "name" : "哪吒编程", "age" : 18 } { "_id" : ObjectId("638b6b8482bdbdfa72665a1a"), "id" : "2", "name" : "云韵", "age" : 23 } { "_id" : ObjectId("638b6b8482bdbdfa72665a1b"), "id" : "3", "name" : "美杜莎", "age" : [ 15, 29 ] } { "_id" : ObjectId("638b6b8582bdbdfa72665a1c"), "id" : "3", "name" : "萧炎", "age" : 38 } > db.student.find({"age":{"$gt":20,"$lt":28}}) { "_id" : ObjectId("638b6b8482bdbdfa72665a1a"), "id" : "2", "name" : "云韵", "age" : 23 } { "_id" : ObjectId("638b6b8482bdbdfa72665a1b"), "id" : "3", "name" : "美杜莎", "age" : [ 15, 29 ] }

和想象中的不太一样啊,我的本意是查询年龄在20~28之间的人,为什么呢?

文档中的标量(非数组元素)必须与查询条件中的每一条子句相匹配。如果使用db.student.find({"age":{"$gt":20,"$lt":28}})进行查询,那么age必须介于20~28之间,然而,如果age是一个数组,那么当age键中的某一个元素与查询条件的任意一条语句相匹配时,文档也会被返回。(即15 db.student.find().sort({"id":1}).limit(5) { "_id" : ObjectId("638b6b8382bdbdfa72665a19"), "id" : "1", "name" : "哪吒编程", "age" : 18 } { "_id" : ObjectId("638c6685e96330d24f819176"), "id" : "1", "name" : "哪吒编程", "age" : 18 } { "_id" : ObjectId("638c6685e96330d24f81917f"), "id" : "10", "name" : "云韵", "age" : 23 } { "_id" : ObjectId("638c6685e96330d24f819180"), "id" : "11", "name" : "美杜莎", "age" : 29 } { "_id" : ObjectId("638c6686e96330d24f819181"), "id" : "12", "name" : "萧炎", "age" : 38 } > db.student.find().sort({"id":1}).skip(5).limit(5) { "_id" : ObjectId("638b6b8482bdbdfa72665a1a"), "id" : "2", "name" : "云韵", "age" : 23 } { "_id" : ObjectId("638c6685e96330d24f819177"), "id" : "2", "name" : "云韵", "age" : 23 } { "_id" : ObjectId("638b6b8582bdbdfa72665a1c"), "id" : "3", "name" : "萧炎", "age" : 38 } { "_id" : ObjectId("638b6b8482bdbdfa72665a1b"), "id" : "3", "name" : "美杜莎", "age" : [ 15, 29 ] } { "_id" : ObjectId("638c6685e96330d24f819178"), "id" : "3", "name" : "美杜莎", "age" : 29 } > db.student.find().sort({"id":1}).skip(10).limit(5) { "_id" : ObjectId("638c6685e96330d24f819179"), "id" : "4", "name" : "萧炎", "age" : 38 } { "_id" : ObjectId("638c6685e96330d24f81917a"), "id" : "5", "name" : "哪吒编程", "age" : 18 } { "_id" : ObjectId("638c6685e96330d24f81917b"), "id" : "6", "name" : "云韵", "age" : 23 } { "_id" : ObjectId("638c6685e96330d24f81917c"), "id" : "7", "name" : "美杜莎", "age" : 29 } { "_id" : ObjectId("638c6685e96330d24f81917d"), "id" : "8", "name" : "萧炎", "age" : 38 } >3、不用skip进行分页

可以通过以下方式:

MongoDB查询与游标之分布式文件存储的方法是什么

到此,相信大家对“MongoDB查询与游标之分布式文件存储的方法是什么”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

推荐阅读: Linux中怎么安装mongodb数据库的Mongo扩展 ahjesus中怎么安装mongodb

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:[email protected]进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

mongodb 上一篇新闻:python如何去除字符串最后的换行符‘\n’ 下一篇新闻:Golang官方中的一致性哈希组件怎么实现 猜你喜欢 python制作猜数游戏 Pandas缺失值的处理方式是什么? Python Django中间件是什么?怎么用? Django QuerySet查询集原理分析 Python celery有什么用?如何使用? Python如何实现视频的人脸融合功能? 怎么使用Keras实现简单线性回归模型操作? Python实现Keras搭建神经网络训练分类模型的方法 Python变量作用域是什么?怎么用? keras 读取多标签图像数据的方法


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3