Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.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
MongoDB从另一个数组中的数组获取属性_Mongodb - Fatal编程技术网

MongoDB从另一个数组中的数组获取属性

MongoDB从另一个数组中的数组获取属性,mongodb,Mongodb,系列是一个文档。它里面有一系列的序列(在本例中有“复仇”和“雷恩斯”)。 每个系列都有一个带有名称的强制转换数组。我需要一个查询来获取这些名字 谁知道如何从两个cast数组中获取所有名称的列表 我最好的方法是使用这个查询db.series.find({},{u id:0,cast:1}),其中一个函数使用两个cast json数组获取一个游标 { series: [ { name: 'Revenge', user_rating: 7.9, duration: 44, genr

系列是一个文档。它里面有一系列的序列(在本例中有“复仇”和“雷恩斯”)。 每个系列都有一个带有名称的强制转换数组。我需要一个查询来获取这些名字

谁知道如何从两个cast数组中获取所有名称的列表

我最好的方法是使用这个查询db.series.find({},{u id:0,cast:1}),其中一个函数使用两个cast json数组获取一个游标

{ series:
[ 
{ 
  name: 'Revenge',
  user_rating: 7.9,
  duration: 44,
  genres: [ ' Drama', ' Mystery', ' Thriller' ],
  year_start: '2011',
  year_end: '',
  cast: 
   [ { name: 'Madeleine Stowe' },
     { name: 'Emily VanCamp' },
     { name: 'Gabriel Mann' },
     { name: 'Nick Wechsler' },
     { name: 'Henry Czerny' },
     { name: 'Joshua Bowman' },
     { name: 'Christa B. Allen' },
     { name: 'Ashley Madekwe' },
     { name: 'Connor Paolo' },
     { name: 'Barry Sloane' },
     { name: 'Margarita Levieva' } ],
  seasons: [ { number: '3' }, { number: '2' }, { number: '1' } ]

},
{
name: 'Raines',
user_rating: 7.4,
duration: 45,
genres: [ ' Crime', ' Drama' ],
year_start: '2007',
year_end: '',
cast: 
    [ { name: 'Jeff Goldblum' },
     { name: 'Matt Craven' },
     { name: 'Nicole Sullivan' },
     { name: 'Linda Park' },
     { name: 'Dov Davidoff' },
     { name: 'Malik Yoba' },
     { name: 'Madeleine Stowe' } ],
seasons: [ { number: '1' } ] 

}
]
}
我需要这样的输出:

I need this:
         { name: 'Madeleine Stowe' },
     { name: 'Emily VanCamp' },
     { name: 'Gabriel Mann' },
     { name: 'Nick Wechsler' },
     { name: 'Henry Czerny' },
     { name: 'Joshua Bowman' },
     { name: 'Christa B. Allen' },
     { name: 'Ashley Madekwe' },
     { name: 'Connor Paolo' },
     { name: 'Barry Sloane' },
     { name: 'Margarita Levieva' },
         { name: 'Jeff Goldblum' },
     { name: 'Matt Craven' },
     { name: 'Nicole Sullivan' },
     { name: 'Linda Park' },
     { name: 'Dov Davidoff' },
     { name: 'Malik Yoba' },
     { name: 'Madeleine Stowe' }

您可以为此使用聚合框架:

db.series.aggregate( { $unwind : "$series" },
                     { $unwind : "$series.cast" },
                     { $group  : { _id  : "$_id",
                                   cast : {$push:"$series.cast}
                                 }
                     }
);

如果您希望将多个演员的出场合并为一个,然后将
$push
替换为
$addToSet

不清楚,是否希望得到所有演员阵容成员姓名的列表?或者你想得到所有包含“马德琳·斯托”或某个特定演员的文件吗?你能包括你想要的结果应该是什么样子吗?我更正了。非常感谢。