Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何从MongoDB文档中提取数据?_Node.js_Mongodb - Fatal编程技术网

Node.js 如何从MongoDB文档中提取数据?

Node.js 如何从MongoDB文档中提取数据?,node.js,mongodb,Node.js,Mongodb,我在NodeJs中使用MongoDB,我试图提取部分文档,以便在我的应用程序中使用它。我想直接在mongo做这一切,但不确定是否可能。我有一个包含大量文档的结构: { _id:something1, firstName: somefirstname, gyms: [{ name: "somename1", address: "somewhere1"}, { name: "somename2", address: "somewhere2"

我在NodeJs中使用MongoDB,我试图提取部分文档,以便在我的应用程序中使用它。我想直接在mongo做这一切,但不确定是否可能。我有一个包含大量文档的结构:

{ _id:something1,
 firstName: somefirstname,
 gyms: [{ name: "somename1",
          address: "somewhere1"},
        { name: "somename2",
          address: "somewhere2"}]
},
{ _id:something2,
 firstName: somefirstname,
 gyms: [{ name: "somename3",
          address: "somewhere3"},
        { name: "somename4",
          address: "somewhere4"}]
},
{ _id:something3,
 firstName: somefirstname,
 gyms: [{ name: "somename5",
          address: "somewhere5"},
        { name: "somename6",
          address: "somewhere6"}]
}
是否有可能以某种方式提取数据,从而得到如下结构

[{ id: soemthing1,
  name: "somename1",
  address: "somewhere1"},
{ id: soemthing1,
  name: "somename2",
  address: "somewhere2"},

{ id: soemthing2,
  name: "somename3",
  address: "somewhere3"},
{ id: soemthing2,
  name: "somename4",
  address: "somewhere4"},

{ id: soemthing3,
  name: "somename5",
  address: "somewhere5"},
{ id: soemthing3,
  name: "somename6",
  address: "somewhere6"}]

在MongoDB聚合框架中,有一个操作符


示例结果

对不起,我已经离开了。。您的解决方案非常有效,谢谢!
db.test.aggregate([
    {$unwind : "$gyms"},
    {$project: { 
        _id: 0, 
        id : '$_id' ,  
        firstName: 1, 
        name: '$gyms.name', 
        address: '$gyms.address'
     }} 
])