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

技术干货| 一文读懂如何查询 MongoDB 文档

二.查询嵌套文档 本段提供了使用 mongo shell 中 db.collection.find() 方法查询嵌套文档的操作案例。案例中使用的 inventory 集合数据可以通过下面的语句产生。...Note: 当在查询语句中使用".",字段嵌套文档字段必须在引号内。...Note: 当使用点号的时候,字段嵌套文档字段必须在引号内 下面的案例返回数组字段 dim_cm 中第二个元素大于25的所有文档: db.inventory.find( { "dim_cm.1": ...mongo shell 中的 db.collection.find() 方法对数组嵌套文档进行查询操作的示例。...指定查询条件在数组嵌套文档字段上 指定查询条件在数组嵌套文档字段上 如果你不知道数组嵌套文档的下标,使用 **(.)** 号连接数组字段的名字和数组嵌套文档字段的名字。

3.9K10

MongoDB权威指南学习笔记(2)--设计应用

设计多个字段的索引时,应该将会用于精确匹配的字段防到索引的前面,将用于范围匹配的字段放到最后 索引对象数组 mongo允许对嵌套字段数组建立索引,嵌套对象数组字段可以与符合索引中顶级字段一起使用...索引嵌套文档 可以在嵌套文档的键上建立索引,方式正常的键一样。...,以便提高这个字段查询速度 db.users.ensureIndex({ "loc.city":1 }) 对嵌套文档本身建立索引嵌套文档的某个字段建立索引是不同的 对整个文档建立索引...,无法对形如db.users.find({“loc.city”:”xxx”})的查询使用索引 索引数组数组建立索引,可以高效的搜索数组中的特定元素 多键索引 对于索引的键,如果这个键在文档中是一个数组...索引进行一次清理,所以不应该依赖以秒为单位保证索引的存活状态 地理空间索引 mongo支持几种类型的地理空间索引,其中常用的时2dsphere索引2d索引 地理空间查询的类型 可以使用多种不同类型的地理空间查询

8.4K30
您找到你想要的搜索结果了吗?
是的
没有找到

【MongoDB】MongoDB入门(一)基本操作和常用命令

查询一个不存在的 collection 时也不会出错,Mongo 会认为那是一个空的 collection。...y from foo // 一些SQL不能做的,MongoDB也可以做: db.foo.find({"address.city":"gz"}) // 搜索嵌套文档address中city值为gz的记录...db.foo.find({likes:"math"}) // 搜索数组 db.foo.ensureIndex({"address.city":1}) // 在嵌套文档字段上建索引 更新数据 db.foo.update...({},{}) //更新对象,第一个参数是查询对象,第二个是替代的,可以在第二个对象里指定更新哪些字段,要使用 set。"...,只删除匹配的对象 删除数据库表 db.foo.drop(); //删除foo这个表 删除当前数据库 db.dropDatebase(); 字段操作 $push:增加数组元素; db.foo.update

41151

MongoDB 命令记录

like "%小%" 特殊查询 嵌套文档/文档数组查询 字段数组对象都可以使用size.uom来进行操作。...,size必须完全匹配 db.inventory.find( { size: { h: 14, w: 21, uom: "cm" } } ) # 嵌套字段查询,直接查询size.uom。...可以用来重命名、增加或删除域,也可以用于创建计算结果以及嵌套文档。 match:用于过滤数据,只输出符合条件的文档。​match使用MongoDB的标准查询操作。...$unwind:将文档中的某一个数组类型字段拆分成多条,每条包含数组中的一个值。 $group:将集合中的文档分组,可用于统计结果。 $sort:将输入文档排序后输出。...update : update的对象一些更新的操作符(如$,$inc…)等,也可以理解为sql update查询内set后面的 upsert : 可选,这个参数的意思是,如果不存在update的记录,

29500

MongoDB基本概念

\ MongoDB中的记录是一个文档,它是由字段值对组成的数据结构。MongoDB文档类似于JSON对象字段的值可以包括其他文档数组文档数组。...( { qty: 0, status: "D" } ); 嵌套对象精准查询 db.inventory.find( { "size.uom": "in" } ); 返回指定字段 db.inventory.find...pretty(); Mongo查询条件SQL查询对照表 \ insertOne, inertMany, insert 的区别 insertOne, insertMany命令不支持 explain...$set 给符合条件的文档新增一个字段,有该字段则修改其值 $unset 给符合条件的文档,删除一个字段 $push: 增加一个对象数组底部 $pop:从数组底部删除一个对象 $pull:如果匹配指定的值...\ 查询数组中的对象 加两行数据,文档中存在数组,且数组中你的元素为对象 db.userInfo.insertMany([ { name:"wangwu", tag: ["90","accountant

6.6K20

MongoDB基本概念

\ MongoDB中的记录是一个文档,它是由字段值对组成的数据结构。MongoDB文档类似于JSON对象字段的值可以包括其他文档数组文档数组。...( { qty: 0, status: "D" } ); 嵌套对象精准查询 db.inventory.find( { "size.uom": "in" } ); 返回指定字段 db.inventory.find...pretty(); Mongo查询条件SQL查询对照表 \ insertOne, inertMany, insert 的区别 insertOne, insertMany命令不支持 explain...$set 给符合条件的文档新增一个字段,有该字段则修改其值 $unset 给符合条件的文档,删除一个字段 $push: 增加一个对象数组底部 $pop:从数组底部删除一个对象 $pull:如果匹配指定的值...\ 查询数组中的对象 加两行数据,文档中存在数组,且数组中你的元素为对象 db.userInfo.insertMany([ { name:"wangwu", tag: ["90","accountant

6.6K60

MongoDB 常用命令

Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。...Mongo还可以解决海量数据的查询效率,根据官方文档,当数据量达到50GB以上数据时,Mongo数据库访问速度是MySQL10 倍以上。...BSON BSON是Binary JSON 的简称,是一个JSON文档对象的二进制编码格式。BSON同JSON一样支持往其它文档对象数组中再插入文档对象数组,同时扩展了JSON的数据类型。...: 2}});  查询所有age字段是整型的  db.users.find({age: {$type: 16}}); 对于字符字段,可以使用正则表达式  查询以字母b或者B带头的所有记录  db.users.find...*/i}); $elemMatch(1.3.1及以上版本)  为数组字段中匹配其中某个元素 Javascript查询$where查询  查询 age > 18 的记录,以下查询都一样  db.users.find

2.2K51

mongodb 基本概念

文档字段中的值可以包括其他文档,成为内嵌文档,也可以包括数组文档数据 关于文档存储的优点有这些: 文档 即为对象,对应于许多编程语言中的本机数据类型 嵌入式文档数组减少了对连接的需求 动态模式支持流畅的多态性...关于 mongo db 查询操作,我们可以有如下运算符可以使用 运算符 说明 $eq 等于 $lt 小于 $lte 小于等于 $gt 大于 $gte 大于等于 $in 判断元素是否在指定的集合范围里...子文档匹配 $regex 正则表达式匹配 关于 mongodb 查询的其他操作: 选择需要的字段 db.集合名字.find({},{字段名:1}) 排除不需要的字段 db.集合名字.find({},{...字段名:0}) 数组子元素的选择 db.集合名字.find({},{“字段名.子文档名的字段”:{$slice:[1,2]}) $slice ,可以取两个元素数组,分别表示跳过数限制数 排序 sort...().skip(3).limit(2) 查询唯一的值 db.集合名.find().distinct({“字段名”}) 上面暂时都是常常使用到的操作,暂时先梳理到这里,其他的咱们下一篇再接着写,关于上述的操作

1.6K30

.NET 云原生架构师训练营(模块二 基础巩固 MongoDB 写入查询)--学习笔记

2.5.3 MongoDB -- 写入查询 写入 查询 查找操作符 逻辑操作符 其他 嵌套对象 数组 游标方法 写入 https://docs.mongodb.com/manual/tutorial/...// 查询条件 { name: 1, address: 1 } // 查询字段 ).limit(5) db.getCollection('questions').find({"title":...$nor: [{"view":{"$gt": 5}}]}) 其他 Name Description $exists 存在某个字段 $type 字段的类型 // 存在某个字段则显示 db.getCollection...https://mongoing.com/docs/reference/bson-types.html 嵌套对象 db.getCollection('questions').find({"best.content...":{$eq: "最好的答案"}}) 数组 Name Description $all 所有元素匹配,匹配简单类型数组 $elemMatch 用于匹配 object 数组 $size 长度条件 db.getCollection

60510

.NET 云原生架构师训练营(模块二 基础巩固 MongoDB 写入查询)--学习笔记

2.5.3 MongoDB -- 写入查询 写入 查询 查找操作符 逻辑操作符 其他 嵌套对象 数组 游标方法 写入 https://docs.mongodb.com/manual/tutorial/...// 查询条件 { name: 1, address: 1 } // 查询字段 ).limit(5) db.getCollection('questions').find({"title":"...$nor: [{"view":{"$gt": 5}}]}) 其他 Name Description $exists 存在某个字段 $type 字段的类型 // 存在某个字段则显示 db.getCollection...://mongoing.com/docs/reference/bson-types.html 嵌套对象 db.getCollection('questions').find({"best.content...":{$eq: "最好的答案"}}) 数组 Name Description $all 所有元素匹配,匹配简单类型数组 $elemMatch 用于匹配 object 数组 $size 长度条件 db.getCollection

65811

【探花交友】学习MongoDB快速入门上手

具体特点总结如下: 面向集合存储,易于存储对象类型的数据 模式自由 支持动态查询 支持完全索引,包含内部对象 支持复制故障恢复 使用高效的二进制数据存储,包括大型对象(...{aa:bb} null:用于表示空值或者不存在的字段,{“x”:null} 布尔型:布尔类型有两个值truefalse,{“x”:true} 数值:shell默认使用64为浮点型数值...,语法与JavaScript的正则表达式相 同,{“x”:/[abc]/} 数组:数据列表或数据集可以表示为数组,{“x”: [“a“,“b”,”c”]} 内嵌文档文档可以嵌套其他文档,被嵌套文档作为值来处理...update : update的对象一些更新的操作符(如,inc....:22}) ​ db.user.find()  #查询全部数据 db.user.find({},{id:1,username:1})  #只查询id与username字段 db.user.find().

3.4K30

明了 | MongoDB 外键的基本使用

而在MongoDB中,表示表关系,使用的是嵌套,即,一个文档嵌套一个文档的方法,作为MongoDB的两个文档的关联,以及使用,reference link作为文档文档之间的关联。...文档嵌套 使用可视化的 这里使用可视化的编辑器作为文档嵌套 输入以下的文档对象 { "ming": "ming", "ming2": { "ming3": "ming8" } }...{ "name" : "红楼梦", "author": { "name": "三国演义", "author": "罗贯中" } } 此时就完成了文档嵌套操作 外键查询 使用js语言,进行查询关联...这里使用new DBRef的方式做外键查询。...此时对于DBRef具有以下字段。 $ref 该$ref字段包含引用文档所在的集合的名称。 $id 该$id字段包含_id引用文档字段的值。

1.7K20

mongo 笔记

为什么要存在mongo 在以往的关系型数据库(如Mysql),使用列来对数据进行存储,进行数据查询操作。但是这样有一个弊端就是 1. 多表查询会比较复杂。...2.对数据类型要求严格,如果需要加字段会稍微麻烦一些。 mongo 是以数组或者对象来对数据进行存储,并且还可以嵌套。...# 进入mongo $ mongo # 显示所有数据库 > show dbs # 创建数据库 使用use 命令, > use gmtest switched to db gmtest # 查看当前db...id" : ObjectId("6170fcd8ced87b0c142a3ba4"), "name" : "菜鸟果果5", "age" : 67 } ### 字段存在查询 > db.gmtest.find...6170fcb3ced87b0c142a3ba2"), "name" : "菜鸟果果3" } { "_id" : ObjectId("6170fcd8ced87b0c142a3ba3"), "name" : "菜鸟果果4" } ### 删除文档

1.1K10

mongoDB 文档查询

除此之外,由于mongoDB支持基于文档嵌套以及数组,因此mongoDB也可以实现基于嵌套文档数组查询。具体见下文描述。...即哪些列需要返回 对于查询的结果可以添加limits, skips, sort 等方式控制返回的结果集 缺省情况下,在mongo shell中对于未使用将结果集返回给变量的情形下,仅返回前...20条记录 注:本文描述中有些地方使用到了文档的键值对,称为键值,有些地方称为列,是一个概念 二、准备数据 //演示环境 db.version() 3.2.9...1 or true 显示该字段 0 or false 不显示该字段 1、限制返回的列 //查询结果中显示字段name及status,缺省情况下,文档的_id列会被返回 > db.users.find...,可以使用基于下标的方式精确配置特定的元素值 5、对于内嵌文档,可以使用文档键.内嵌文档键”方式进行访问 6、对于数组内内嵌文档的方式,可以使用数组名.下标.内嵌文档键”方式访问 7、对于哪些列名需要显示可以通过

3.1K20

Mongodb多键索引之数组文档

数组文档如何使用高效索引查询】 1、集合中随机一条文档信息 备注:instock是数组文档,里面嵌套文档 xiaoxu:PRIMARY> db.inventory.findOne(); {...备注:匹配数组文档时,嵌套对象field(字段)顺序也必须保持一致,否则结果集为空 db.inventory.find({ "instock": { warehouse: "Tracy", qty...通过数组字段加点(.)嵌套字段方式--数组嵌套对象任意字段满足条件 通过数组索引位置来查询嵌套字段--数组指定位置的嵌套字段满足条件 备注:通过数组字段.嵌套字段查询出73443--任意一个对象的warehouse...":"xiaoxu"}).count(); 73443 注意:数组中可以这么写db.inventory.find({ "instock":"xiaoxu"}),数组文档 中没有必须带是嵌套字段才可以.否则变成匹配整个文档...至少1个嵌套文档同时满足多个条件--需要使用$elemMatch(此时不分区字段顺序) 至少1个嵌套文档满足A条件或者满足B条件--注意没有同时且满足条件的文档 可以跨越多个嵌套文档,这个就是是否使用

3.2K30

MongoDB 3.0.6的主,从,仲裁节点搭建

/i}) // 正则查询,value是符合PCRE的表达式 db.food.find({fruit : {$all : ["apple", "banana"]}}) // 对数组查询, 字段fruit...中,既包含"apple",又包含"banana"的纪录 db.food.find({"fruit.2" : "peach"}) // 对数组查询, 字段fruit中,第3个(从0开始)元素是peach...的纪录 db.food.find({"fruit" : {"$size" : 3}}) // 对数组查询, 查询数组元素个数是3的记录,$size前面无法其他的操作符复合使用 db.users.findOne..." : [23, 10]}; 分别返回最后10条,中间10条 db.people.find({"name.first" : "Joe", "name.last" : "Schmoe"}) // 嵌套查询...db.blog.find({"comments" : {"$elemMatch" : {"author" : "joe", "score" : {"$gte" : 5}}}}) // 嵌套查询,仅当嵌套的元素是数组使用

1.3K10

Mongo聚合分析命令浅析

mongo中,其实可以直接使用命令就可以实现,主要得益于其非常强大的统计命令支撑。 下面通过一个例子来看下mongo中强大的统计分析命令。...有这样一个集合,test集合字段示例如下: cmgo-dho4eog7_0:PRIMARY> db.resource_f57ddf3fa743426b93cd6390e748699b.findOne({...sum表示对指定字段求和,这里就是对前面project管道返回的cpu字段进行求和 上面的projectgroup都是appreciate中的pipeline,也就是聚合操作中的管道命令, 管道在Unix...可以用来重命名、增加或删除域,也可以用于创建计算结果以及嵌套文档。 :用于过滤数据,只输出符合条件的文档。����ℎ:用于过滤数据,只输出符合条件的文档。match使用MongoDB的标准查询操作。...$unwind:将文档中的某一个数组类型字段拆分成多条,每条包含数组中的一个值。 $group:将集合中的文档分组,可用于统计结果。 $sort:将输入文档排序后输出。

20420

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

相关资讯

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券