2016-03-22 9 views
1
"translation" : [ 
    { 
     "language" : "english", 
     "name" : "shahid Afridi", 
     "desc" : "batsmen", 
     "player" : "capten" 
    }, 
    { 
     "language" : "spanish", 
     "name" : "shhid Ofridi", 
     "desc" : "batsmeen", 
     "player" : "capteen" 
    }, 
    { 
     "language" : "french", 
     "name" : "hhid afrede is best", 
     "desc" : "batsmin", 
     "player" : "captn" 
    } 
], 
    "auto-publish" : "publish", 
    "color" : "red", 
    "boolean" : "true" 

私はMongoDBの でこの文書を持っている(他の兄弟の値1を集約を使用するか、または入れなし)兄弟のアイテムを配列の一つの要素をフェッチ私は翻訳が[0]、色やブール値を自動的に公開したいと思います。 注:他の兄弟の値を集計を使用して、またはかけずに1リターン で

+0

MongoDBのバージョンについてお聞かせください。また、集約フレームワークを使用したくない理由についても言及してください。 – Saleem

答えて

0
あなたのカーソル上のforEachを使用することができ

:私はあなたが使用することなく、必要があるとして、文書を再編成するための他の方法はないと思う

db.test.find({}).forEach(function(doc){ 
    if (doc.hasOwnProperty('translation')){ 
     var newdoc = {}; 
     newdoc = doc.translation[0]; 
     newdoc['auto-publish'] = doc['auto-publish']; 
     newdoc['color'] = doc['color']; 
     newdoc['boolean'] = doc['boolean'];   
     print(tojson(newdoc)); 
    } 
}) 

集約。

+0

ご返信ありがとうございます。しかし、それは他の兄弟フィールドの値1を置くのと同じです。私は100フィールドを持っているので、100に1を入れなければならないか、newdoc [doc ''] = 100フィールド。 –

+0

さて、私は、集計は、値を置くことなく、またはある文書フィールドを別の文書フィールドと同じにすることなく、必要な結果を得る唯一の方法だと考えています。なぜあなたは集約を使いたくないのですか? – aokozlov