2014-11-09 108 views
0

我是MongoDB(和stackoverflow)的新手 - 我一直在尝试使用Mongo + Node.js构建实时分析。MongoDB:仅查询特定子文档

我已经在http://docs.mongodb.org/ecosystem/use-cases/pre-aggregated-reports/之后创建了一个文档结构,但现在我无法仅仅使用给定的DateTime查询“第二个”值 - 我认为整个文档被返回,因为只有一个父对象。我的结构看起来像这样,在集合中只有一个文件:

“小时” - >“分” - >“第二”:价值

doc:{ 
    "0": { 
     "0": { 
      "0": 0, 
      "1": 0, 
      "2": 0, 
      "3": 0... 
      } 
     }  
} 

我一直在寻找到总$收放$(投影),我创建了一个像“12.22.59”(“hh.mm.ss”)的字符串,但我不知道从哪里开始。

我很感激任何帮助!

感谢, 凯文

+0

根据我的猜测,您只需要将第二个值返回正确的位置,您可以使用投影使用查询来实现此目的 – Ninad 2014-11-09 12:23:32

回答

0

查询MongoDB中总是与整个文档具有匹配字段,这些字段是否阵列,嵌入子文档,等你总是查询整个文档,但您可以使用project仅返回匹配文档的一部分。若要从嵌套结构只返回第二个值(我理解这是什么意思),你会做

db.collection.find({ // your query }, { "_id" : 0, "0.0.1" : 1 }) 

我不是100%肯定这是你在找什么。如果没有,你可以编辑这个问题,以确定你想要返回的东西,并让我知道这是不正确的评论?

+0

是的,这就是我一直在寻找的东西。但是,我决定采用更易读的模式,这使我更容易查询。谢谢! – 2014-11-10 17:31:11