使用node.js在mongodb中查询数组中的文档

时间:2016-02-16 20:58:44

标签: node.js mongodb

如何查询Array中存在的所有文档,这些文档本身存在于Node.js下的MongoDB集合中。

例如:我有一个具有结构的数据库:

{
  "name1":[{"height":"5.5"},
           {"weight":"57"}],
  "name2":[{"height":"6.1"},
           {"weight":"74"}]
}

我应该做什么查询才能获得数组的所有文件(即身高,体重)" name1"

输出应为:

{ 
  { "height":"5.5"}
  {"weight":"57"}
}

1 个答案:

答案 0 :(得分:0)

我的建议是重新组织集合,以便每个文档都有一个名称和物理属性键的密钥,例如。

{
   'name' : 'name1', 
    'physAttr': ['height': heightvalue,
                      'weight': weightvalue]
}

然后假设您要查找高度为5.5的所有文档,查询将是微不足道的

db.collection.find({ 'physAttr.height': 5.5 })

如问题中所述,集合中的每个文档都具有与其他文档不同的模式(每个文档的名称键不同),使查询操作变得困难。