首页 > 解决方案 > 我可以在 MongoDB 中将 elemMatch 与点表示法结合使用吗?

问题描述

今天要学什么……我现在使用 Mongodb,阅读参考手册并尝试自己,我不知道如何匹配嵌入式文档的各个部分。

鉴于这个微小的植物收藏:

{ "code" : "2016.0461.1", "lon" : -73.8603176593, "lat" : 2.06117398918, 
  "species" : "Pera arborea", 
  "dap" : { "2016-11" : 10 } }
{ "code" : "2011.0154.1", "lon" : -73.8648049304, "lat" : 2.05991990281, 
  "species" : "Terminalia amazonia",  
  "dap" : { "2013-10": 8, "2016-11" : 21 } }
{ "code" : "2006.0065.1", "lon" : -73.8672333008, "lat" : 2.05869146507,
  "species" : "Maquira coriacea",
  "dap" : { "2010-10": 80, "2013-05": 84, "2016-11" : 90 } }

我希望选择2016年11月所有宽度超过50cm的树木(以上数据中,dap是树的胸径,偶尔测量,所以我只希望有代码的植物2006.0065.1

db.plants.find({"dap.2016-11" : 90})给出了预期的结果,但我能想到的两个查询不起作用:

都没有发出错误信号并且都返回 0

标签: databasemongodb

解决方案


所以我在一个相关问题中找到了答案:我不需要elemMatch,并且工作查询可以使用点表示法:

db.plants.find({"dap.2016-11" : {$gte: 90}})


推荐阅读