2017-01-24 6 views
0

inの部分を一次元で取得したいと思います。 ["art", "music", "cinema" , "calculus" , "science"]mongodbのクエリから1次元配列を返します。

構造は;

enrolled: 
[ 
    {in : "art", registerAt: ""}, 
    {in : "music", registerAt: ""}, 
    {in : "cinema", registerAt: ""}, 
    {in : "calculus", registerAt: ""}, 
    {in : "science", registerAt: ""}, 
] 

これを行うには、私はクエリを書きました。

db.deneme.find({}, {"enrolled.in" : 1, _id: 0}).toArray(function(err, result){ 
    var arr =[]; 
    for(var i=0; i < result.in.length; i++){ 
    arr.push(result.in[i].in); 
    } 
}) 

良い方法はありますか?

答えて

0

あなたはaggregateクエリを使用することができます

db.deneme.aggregate([ 
    {$unwind:"$enrolled"}, 
    {$group:{ 
     _id:"$_id", 
     in:{$addToSet:"$enrolled.in"} 
     } 
    } 
]).toArray(function(err, result){ 
    console.log(result) 
}) 
関連する問題