mongoDB 常用命令 (4) -- 查询文档之查询嵌套文档

147 阅读1分钟

匹配嵌入式/嵌套文档

要在作为嵌入/嵌套文档的字段上指定相等条件,请使用 查询过滤文档 { <field>: <value> }``<value>要匹配的文档在哪里。

例如,以下查询选择字段 size等于 document 的所有文档{ h: 14, w: 21, uom: "cm" }

db.inventory.find( { size: { h: 14, w: 21, uom: "cm" } } )

MongoDB外壳

整个嵌入文档的相等匹配需要 指定文档的完全<value>匹配,包括字段顺序。例如,以下查询不匹配 inventory集合中的任何文档:

db.inventory.find(  { size: { w: 21, h: 14, uom: "cm" } }  )

MongoDB外壳

查询嵌套字段

要在嵌入/嵌套文档中的字段上指定查询条件,请使用[点符号]

笔记

使用点表示法查询时,字段和嵌套字段必须在引号内。

在嵌套字段上指定相等匹配

以下示例选择字段uom 嵌套在size字段中的所有文档等于"in"

db.inventory.find( { "size.uom": "in" } )

MongoDB外壳

使用查询运算符指定匹配

一个查询过滤文档可以使用查询运算符以下列形式指定条件:

{ <field1>: { <operator1>: <value1> }, ... }

MongoDB外壳

以下查询使用小于运算符 ($lt) 在字段中h嵌入的size字段上:

db.inventory.find( { "size.h": { $lt: 15 } } )

MongoDB外壳

指定AND条件

以下查询选择嵌套字段h 小于15、嵌套字段uom等于"in"和 status字段等于的所有文档"D"

db.inventory.find( { "size.h": { $lt: 15 }, "size.uom": "in", status: "D" } )

本文正在参加「技术专题19期 漫谈数据库技术」活动