2013-10-18 60 views
0

系列是一個文檔。它裏面有一系列的系列(在這個例子中它有'Revenge'和'Raines')。 每個系列都有一個帶名稱的陣列陣列。我需要一個查詢來獲取這些名稱。MongoDB中得到從陣列屬性內的另一個陣列

誰知道我怎樣才能從兩個投陣列中的所有名稱的列表?

我的最好的辦法是這樣的查詢db.series.find({},{_id:0,演員:1}),其中獲得與兩個投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' } 
+0

這是不明確的,你想要得到的結果,所有劇組成員的名單?或者你想獲得所有包含「Madeleine Stowe」的文件 - 或者某個特定的演員?你能包括你想要的結果應該是什麼樣子? –

+0

我改正了它。謝謝 – user2373148

回答

0

您可以使用該聚合框架:

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

如果你想整合多個演員出場打入一個然後用替換$push$addToSet