我可以将elemMatch与点标记在MongoDB中结合使用吗?

时间:2018-08-13 21:19:02

标签: database mongodb

今天要学习的东西……我现在在Mongodb上,阅读the reference manual并尝试自己,我看不到如何匹配嵌入式文档的各个部分。

给了这个小小的植物:

{ "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月所有宽度超过50厘米的树木(在以上数据中,dap是指胸部高度处的树木直径,偶尔会对其进行测量,因此我希望只种植这种植物)代码为2006.0065.1

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

  • db.plants.count({dap : {"2016-11" : {$elemMatch: {$gte:40}}}})
  • db.plants.count({"dap.2016-11" : {$elemMatch: {$gte: 40}}})

都不表示错误,都返回0

1 个答案:

答案 0 :(得分:0)

因此我在a related question中找到了答案:我不需要elemMatch,并且有效的查询可以使用点符号:

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