首页 > 其他分享 >Query on Embedded/Nested Documents

Query on Embedded/Nested Documents

时间:2023-08-12 09:12:09浏览次数:35  
标签:Documents Embedded field inventory query Query document uom size

This page provides examples of query operations on embedded/nested documents using the db.collection.find() method in mongosh.

The examples on this page use the inventory collection. Connect to a test database in your MongoDB instance then create the inventory collection:

                         
db.inventory.insertMany( [
{ item: "journal", qty: 25, size: { h: 14, w: 21, uom: "cm" }, status: "A" },
{ item: "notebook", qty: 50, size: { h: 8.5, w: 11, uom: "in" }, status: "A" },
{ item: "paper", qty: 100, size: { h: 8.5, w: 11, uom: "in" }, status: "D" },
{ item: "planner", qty: 75, size: { h: 22.85, w: 30, uom: "cm" }, status: "D" },
{ item: "postcard", qty: 45, size: { h: 10, w: 15.25, uom: "cm" }, status: "A" }
]);
                           

To specify an equality condition on a field that is an embedded/nested document, use the query filter document { <field>: <value> } where <value> is the document to match.

                     

For example, the following query selects all documents where the field size equals the document { h: 14, w: 21, uom: "cm" }:

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

Equality matches on the whole embedded document require an exact match of the specified <value> document, including the field order. For example, the following query does not match any documents in the inventory collection:

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

To specify a query condition on fields in an embedded/nested document, use dot notation ("field.nestedField").

NOTE

When querying using dot notation, the field and nested field must be inside quotation marks.

 

The following example selects all documents where the field uom nested in the size field equals "in":

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

query filter document can use the query operators to specify conditions in the following form:

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

The following query uses the less than operator ($lt) on the field h embedded in the size field:

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

The following query selects all documents where the nested field h is less than 15, the nested field uom equals "in", and the status field equals "D":

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

标签:Documents,Embedded,field,inventory,query,Query,document,uom,size
From: https://www.cnblogs.com/kungfupanda/p/17624343.html

相关文章

  • $elemMatch (query)
     https://www.mongodb.com/docs/manual/reference/operator/query/elemMatch/$elemMatch(query) TIPSeealso:$elemMatch(projection)Definition $elemMatch The $elemMatch operatormatchesdocumentsthatcontainanarrayfieldwithatleasto......
  • jquery 特效专辑
     提示框弹窗类FaceboxFacebox是一个基于jQuery,Facebook-style的lightbox。能够展示示images,divs或者整个远程页面。FaceboxSimpleModalSimpleModal是一个轻量级jQuery插件提供了一个简单的接口来创建模式对话框。SimpleModaljTipjTip一个利用jQuery开发的提示......
  • QueryPath, php上的jQuery
      红得发紫的jQuery框架是专门用于页面Javascript程序设计的,它通过一种优雅的方式让我们轻松自如地操作页面的所有元素而无须担心浏览器版本以及兼容性等问题。受到jQuery的启发,一种试图让Web开发者在PHP中直接采用jQuery方式操纵和生成HTML/XML元素的QueryPath计划开始了,库的......
  • jQuery 操作select
    jQuery取得select选中的值   本来以为jQuery("#select1").val();是取得选中的值,       那么jQuery("#select1").text();就是取得的文本。       这是不正确的,正确做法是:       jQuery("#select1 option:selected").text();jQuery取得select选择......
  • 谷歌云 | BigQuery 现在支持用于查询开放表格式的清单文件
    【本文由CloudAce整理发布。CloudAce是谷歌云全球战略合作伙伴,拥有300多名工程师,也是谷歌最高级别合作伙伴,多次获得GoogleCloud合作伙伴奖。作为谷歌托管服务商,我们提供谷歌云、谷歌地图、谷歌办公套件、谷歌云认证培训服务。】开放表格式依赖嵌入式元数据来提供事务一致的......
  • MySQL全文搜索的高级特性:查询扩展(Query Expansion)
    查询扩展(QueryExpansion)是全文搜索的一个高级特性,尤其对于某些搜索需求来说非常有用。它是基于原始查询返回的结果来进一步扩展并改进搜索结果的过程。当用户执行全文搜索查询时,可能会遇到以下情况:查询结果太少或没有。由于用户不熟悉正确的术语或关键字,查询不准确。在这些......
  • SuiteQL Query Tool(from Tim)
    背景使用了3年时间后,我表示非常感激;不得不来赞美一下下。我很喜欢Tim兄分享的SuiteQLQueryTool,它用AJAX的方式提交query无需刷新页面动态加载query结果,另外更加人性化的数据库字段搜索,索引与关联等。总体感觉:非常简洁,直观,方便,快速源地址https://timdietrich.me/netsuite......
  • jQuery隐式迭代
      ......
  • DOM对象和jquery对象互换
      ......
  • DOM对象和jquery对象
      ......