Mongoose没有检索与mongo控制台客户端相同的数据

时间:2017-05-04 16:53:45

标签: node.js mongodb mongoose

所以,我有一个带有集合的Mongo数据库,其中文档的结构类似于:

export

当运行mongoose时,即使它们有数据,也会返回所有文档的子子文档数组为空。如果我在控制台上运行mongo客户端,我可以毫无问题地检索信息。

但它更奇怪:如果我在我的nodejs端点上运行以下命令它会返回一个空数组,表明我的任何文档中都没有空的子子文档数组(我可以通过直接访问数据库来确认)

{
  "name": "sampleName",
  "subdocument": [
      {
        "name": "subDocName",
        "subsubdocument": [...]
      }
  ]
}

虽然如果我运行下面的代码,我的所有子文档数组都打印为[]。

MyCollection.find({'subdocument.subsubdocument': {$eq: []}},function(err, result) {
  console.log(result);
});

我甚至使用了一个GUI(mongobooster)来检查我是不是疯了。

我不清楚这里发生了什么,也不知道如何解决这个问题,欢迎任何想法。

PS:我使用的是MongoDB版本3.2和mongoose v4.4.12。

1 个答案:

答案 0 :(得分:1)

所以,我认为这是一个相当愚蠢的错误,因为我认为标准行为会有所不同。这只是一些git版本的混乱导致了mongoose模式的错误。

我只是想,如果它应该显示错误而不仅仅是隐藏信息,确实很奇怪......

但是感谢Inder R Singh指出我正确的方向。