首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

mongoDB 文档查询

在关系型数据库中,可以实现基于表上各种各样的查询,以及通过投影来返回指定的列。对于NoSQL mongoDB而言,所有能够在单表上完成的查询,在mongoDB中也可以完全胜任。...除此之外,由于mongoDB支持基于文档嵌套以及数组,因此mongoDB也可以实现基于嵌套文档和数组的查询。具体见下文描述。...//查询数组元素任意一个内嵌文档满足所有条件的文档 //如下,数组points内嵌文档任意一个文档points的值小于等于70,且数组内另外一个文档bonus值等于20 //或者数组内某个内嵌文档...( {} ) 2、基于and运算符的多个组合条件可以省略and运算符的多个组合条件可以省略and,直接将条件组合即可 3、对于$and运算符内的条件,用[]括起来,相当于数组形式 4、对于数组查询...,可以使用基于下标的方式精确配置特定的元素值 5、对于内嵌文档,可以使用”文档键.内嵌文档键”方式进行访问 6、对于数组内内嵌文档的方式,可以使用”数组名.下标.内嵌文档键”方式访问 7、对于哪些列名需要显示可以通过

3.1K20

MongoDB文档查询操作

MongoDB文档查询 1、语法 2、对比语法 3、AND 4、OR 5、AND与OR联合 6、数据中查询 7、模糊查询 8、排序 9、分页 10、总条数 11、去重 12、指定返回字段 1、语法...查询时返回文档中所有键值, 只需省略该参数即可(默认省略)。...如果你需要以易读的方式来读取数据,可以使用 pretty() 方法,语法格式如下: > db.集合名称.find().pretty() 注意: pretty() 方法以格式化的方式来显示所有文档。...2、对比语法 如果你熟悉常规的 SQL 数据,通过下表可以更好的理解 MongoDB 的条件语句查询: 先查询下collections中的数据 让数据友好显示: db.users.find().pretty...() 我们查询年龄为24的文档数据 db.users.find({age:24}) 查询年龄小于29岁的数据 db.users.find({age:{$lt:29}}) 查询年龄小于等于29岁的数据

1.1K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    MongoDB文档查询操作(一)

    上篇文章我们主要介绍了MongoDB的修改操作,本文我们来看看查询操作。...本文是MongoDB系列的第五篇文章,了解前面的文章有助于更好的理解本文: ---- find方法再探 find方法是很重要的一个查询方法,我们在前面也已经使用过多次了,一般情况下我们调用的是: find...如果有查询条件,我们传入查询条件即可,查询条件也是一个文档,如下表示查询x为1的文档: db.sang_collect.find({x:1}) 如果查询条件文档中有多个字段,多个字段之间的关系是AND,...x为1或者2的所有文档,如下: db.sang_collect.find({x:{$in:[1,2]}}) in恰好相反,表示查询某一个字段不在某一个范围内的所有文档,比如我想查询x不为1或者2(不为1...({y:{$lt:100,$gt:98}}) 好了,MongoDB中的查询操作还是非常丰富的,本文我们先说到这里,下篇文章我们继续介绍,小伙伴们有问题欢迎留言讨论。

    87560

    MongoDB文档查询操作(三)

    关于MongoDB中的查询,我们已经连着介绍了两篇文章了,本文我们来介绍另外一个查询概念游标。 本文是MongoDB系列的第七篇文章,了解前面的文章有助于更好的理解本文。...()方法,也有next()方法,这两个方法结合可以用来遍历结果,如下: while(cursor.hasNext()){ print(cursor.next()) } next()方法可以获取查询到的每一个文档.../* 2 */ { "_id" : ObjectId("59f299579babb96c21ddc9e9"), "x" : 1.0, "y" : 999.0 } 如果我只想获取文档中的某一个字段...,这有点类似于数据库框架中的懒加载,shell在每次查询的时候会获取前100条结果或者前4MB数据(两者之间取最小),然后我们调用hasNext和next时shell就不用再去连接数据库了,直接一条一条的返回查询到的数据...好了,MongoDB中的查询我们就说到这里,小伙伴们有问题欢迎留言讨论。 参考资料: 1.《MongoDB权威指南第2版》

    1.2K40

    MongoDB文档查询操作(二)

    上篇文章我们对MongoDB中的查询操作做了简单介绍,本文我们继续来看更丰富的查询操作。...本文是MongoDB系列的第六篇文章,了解前面的文章有助于更好的理解本文: ---- null null的查询稍微有点不同,假如我想查询z为null的数据,如下: db.sang_collect.find...({z:null}) 这样不仅会查出z为null的文档,也会查出所有没有z字段的文档,如果只想查询z为null的字段,那就再多加一个条件,判断一下z这个字段存在不,如下: db.sang_collect.find...也可以按照下标匹配,比如我想查询数组中下标为2的项的为"水浒传"的文档,如下: db.sang_collect.find({"books.2":"水浒传"}) 也可以按照数组长度来查询,比如我想查询数组长度为...好了,MongoDB中的查询操作还是非常丰富的,本文我们先说到这里,下篇文章我们介绍游标,小伙伴们有问题欢迎留言讨论。 参考资料: 1.《MongoDB权威指南第2版》

    1.2K30

    MongoDB(10)- 查询嵌套文档

    : "journal", "qty" : 25, "size" : { "h" : 14, "w" : 21, "uom" : "cm" }, "status" : "A" } 这种写法不仅需要嵌套文档的字段...换了个字段顺序就查不到同一条文档了 查询嵌套字段 要在嵌入/嵌套文档中的字段上指定查询条件,语法格式如下 "field.nestedField" 跟 JSON 取值一样,用 ....,找到嵌套文档的 h 字段值等于 in 的所有文档 栗子二:嵌套字段结合单个查询条件操作符 > db.inventory.find( { "size.h": { $lt: 15 } } ) { "_id...,找到嵌套文档的 h 字段值小于 15 的所有文档 栗子三:多个不同嵌套字段结合 and 操作 > db.inventory.find( { "size.h": { $lt: 15 }, "size.uom...h 字段值小于 15 size 字段,嵌套文档的 uom 字段值等于 in status 字段值等于 D 重点 如果是指定单个字段的时候,可以不需要加 ""(当然,加了也无妨),比如 db.inventory.find

    2.1K20

    MongoDB(12)- 查询嵌入文档的数组

    查询嵌套在数组中的文档 查询 instock 数组中包含 { warehouse: "A", qty: 5 } 的所有文档 > db.inventory.find( { "instock": {..."journal", "instock" : [ { "warehouse" : "A", "qty" : 5 }, { "warehouse" : "C", "qty" : 15 } ] } 嵌套文档内的字段...,如果不知道文档的准确索引值,只能按照以下格式 数组字段名.文档字段名 instock.qty 使用数组索引查询嵌入文档中的字段 上面的栗子是直接根据字段名查找 在 instock 数组中,第一个元素包含字段...(多个)查询条件 栗子一 找到在 instock 数组中【至少有一个嵌入文档包含 qty > 10,以及至少有一个嵌入文档(但不一定是同一个嵌入文档)包含 qty ≤20 】的文档 > db.inventory.find...前言 上面的栗子都是单个嵌套文档或多个嵌套文档满足多个查询条件即可 如果想确保单个嵌套文档必须同时满足多个查询条件呢?

    4.6K10

    MongoDB查询(数组、内嵌文档和$where)

    上篇主要介绍了一些基本的查询条件操作符的使用,主要针对的是一些单值,我们这次来讲讲如何查询文档内的数组和嵌入文档,并讲一下复杂查询"$where"。...我们看,使用“$all”对数组内元素的顺序没有要求,只要全部包含的数组都能查询出来。数组查询也可以使用精确匹配的方式,即查询条件文档中键值对的值也是数组,如: ?...如果是精确匹配的方式,MongoDB的处理方式是完全相同的匹配,即顺序与数量都要一致,上述中第一条文档和查询条件的顺序不一致,第三条文档比查询条件文档多一个元素,都没有被匹配成功!...上篇提到了,find函数的第二个参数用于查询返回哪些键,他还可以控制查询返回数组的一个子数组,如下例:我只想查询水果店售卖说过数组的前两个: ?...---- 【查询内嵌文档】 查询文档有两种方式,一种是完全匹查询,另一种是针对键值对查询!内嵌文档的完全匹配查询和数组的完全匹配查询一样,内嵌文档内键值对的数量,顺序都必须一致才会匹配,如下例: ?

    6.1K20

    MongoDB优雅查询文档记录.pretty()用法

    MongoDB命令行进行数据查询时,数据查询的结果一般会很长,且find() 方法是以非结构化的方式来显示文档的,所以查询结果的输出不是非常直观,导致进行异常排查时,往往会看花眼。...如果需要以更易读、更美观的方式来读取数据,可以使用 pretty() 方法,下面我就为大家演示一下:(1)插入测试数据for (var i = 1; i 查询横向显示rs0:PRIMARY> db.starcto.find().limit(1){ "_id" : ObjectId("622ae4a48ce60971e2d85f82"),"x":1..., "name0":"MACLEAN", "name1":"MACLEAN", "name2":"MACLEAN" }如上述在未加.pretty()时,find()查询结果都在一行显示,如果集合文档结构复杂...)后,可以看出查询结果以json格式竖向展示,此时查询结果展示就已经非常直观了。

    5400

    MongoDB(9)- 文档查询操作之 find() 的简单入门

    find() MongoDB 中查询文档使用 find() find() 方法以非结构化的方式来显示所要查询的文档 语法格式 db.collection.find(query, projection)...query:可选项,设置查询操作符指定查询条件 projection :可选项,指定要在与 query 匹配的文档中返回的字段,如果忽略此选项则返回所有字段 pretty() 为了查看文档的格式更加直观美丽...findOne() 和 find() 的都是查询文档,但是只返回匹配查询条件成功的第一个文档 语法格式 db.collection.findOne(query, projection) 查询条件 MongoDB...支持查询条件操作符,下表为 MongoDB 与 RDBMS(关系型数据库,Mysql)常见的查询条件操作符的对比 操作符 格式 实例 与 RDBMS where 语句比较 等于(=) { :...SELECT * FROM inventory WHERE status = "A" OR qty > 50 查询文档,and 加 or 的操作 查询文档选择集合中 status 为“A”、qty小于

    88410

    ⑧【MySQL】数据库查询:内连接、外连接、自连接、子查询、多表查询

    表1 [INNER] JOIN 表2 ON 连接条件...; == 内连接查询的是两张表交集的部分 == -- 演示: -- 查询员工姓名,以及关联的部门名称(隐式内连接) -- 表:员工表emp、...连接条件...; -- 演示 -- 查询emp表员工 及其 所属领导的名字 -- 使用内连接 SELECT e1....子查询分类(根据子查询结果不同): ①标量子查询(子查询结果为单个值) -- 演示 -- ①标量子查询 -- 1.查询“销售部”的所有员工信息 SELECT * FROM emp WHERE dept_id...NOT IN:不在指定的集合范围之内。 ANY:子查询返回列表内,有任意一个满足即可。 SOME:与ANY相同,使用SOME的地方都可以使用ANY。 ALL:子查询返回列表的所有值都必须满足。...`name` = '财务部')); ③行子查询(子查询结果为一行) -- 演示 -- ③行子查询 -- 查询与“张无忌” 薪资 以及 直属领导 相同的员工信息 SELECT * FROM emp WHERE

    58880

    子查询与子查询的分类(一)

    在 SQL 中,子查询是一个查询嵌套在另一个查询中的查询,也被称为内部查询。子查询可以用来创建更复杂的查询,从而实现更高级的数据检索和分析。...子查询的分类子查询可以根据其位置和返回结果的数量和数据类型分为以下三种类型:标量子查询:返回一个单一值的查询,通常用于作为 WHERE 子句或 SELECT 子句中的表达式。...first_name, last_name, salaryFROM employeesWHERE salary > (SELECT AVG(salary) FROM employees);在这个例子中,子查询...列子查询:返回一个列值列表的查询,通常用于 IN 或 EXISTS 子句中。...表子查询:返回一个表格作为查询结果的查询,通常用于 FROM 子句中的表达式。

    1.7K50
    领券