2017-10-03 18 views
0

MongoDBクエリが初めてです。基本的なクエリを実行する際に問題が発生しています。MongoDB:いくつかのコレクションを1つのコレクションに結合して余分なフィールドを追加します。

myCollection_2017_1 
{username:"foo1", credit:"bar1"} 

myCollection_2017_2 
{username:"foo2", credit:"bar2"} 

myCollection_2017_3 
{username:"foo3", credit:"bar3"} 
. 
. 
. 

私は年のための余分なフィールドを1つのより大きなコレクションにこれらの異なるヶ月を組み合わせたい/月:

私は、各文書は2つのフィールドがあり、各月のMongoDBの中にいくつかのコレクションを持っています

myCollection 
{username:"foo1", credit:"bar1", date:"20171"} 
{username:"foo2", credit:"bar2", date:"20172"} 
{username:"foo3", credit:"bar3", date:"20173"} 

ご協力いただければ幸いです。

答えて

0

これは、各オブジェクトにdate属性を追加してコレクションごとにmapでこれを実行できます。 myCollection_2017_1タイプアレイのであれば、上記にのみ動作します。例えば

myCollection_2017_1_records = myCollection_2017_1.map(it => { 
    return Object.assign(it, { date: 20171 }) 
}) 

そしてそう

myCollection = myCollection_2017_1_records 
    .concat(myCollection_2017_2_records) 
    .concat(myCollection_2017_3_records) 

EDITなどつの新しい配列をマージします。

myCollection_2017_1_records = Object.keys(myCollection_2017_1).map(key => { 
    return Object.assign(myCollection_2017_1[key], { date: 20171 }) 
}) 
+0

を次のようにする場合には、それはオブジェクトである、あなたはそれを繰り返すことができ、スクリプトの実行に失敗しました:エラー:例外TypeError:db.myCollection_2017_1.mapは関数ではありません。(シェル)@:1:31 – vaheeds

+0

実行する方法このクエリ?注文や何か – vaheeds

+0

私は、db.myCollection_2017_1がオブジェクトを含む配列であると仮定しました。これを確認するには、 'console.log(typeof db.myCollection_2017_1)'を実行します。これは 'Object'でもかまいません。その場合は、差分のアプローチを使用して – kharhys

関連する問題