1 つのレコードを持つ mongo コレクションを非集約化し、内部に 1 つの大きな大きなリストを持ち、代わりに別のコレクションの多くのレコードとして表現したいと考えています。long 配列に含まれていないレコード内の変数の場合、これは、新しいコレクションにコピーされるたびに、arary の上の各新しいレコードに最上位レベルを繰り返すことを意味します。
私が持っているのはこれです:
> db.current.showOne()
{"name" : "thing",
"othervar" : 1,
"longcollection" : [
{"first": 1,
"second":2},
{"first": 3,
"second":4},
{"first": 5,
"second":6},
... etc...
{"first": 10000,
"second":10001}
]
}
私が欲しいのはこれです:
> db.new.find().limit(5000).pretty()
{"name" : "thing",
"othervar" : 1,
"longcollection" :
{"first": 1,
"second":2}
},
{"name" : "thing",
"othervar" : 1,
"longcollection" :
{"first": 3,
"second":4}
},
{"name" : "thing",
"othervar" : 1,
"longcollection" :
{"first": 5,
"second":6}
},
{"name" : "thing",
"othervar" : 1,
"longcollection" :
{"first": 7,
"second":8}
}
..等。
各レコードに固有の情報は "longcollection" 変数にあり、これは配列ではなく辞書になっています。"longcollection" の内部ではなく、同じレベルにあるその他の情報は、すべての新しいレコードに対して繰り返されます。
これは一種のアンラップ、またはアンワインドだと思います。ここで私を得る copyTo() と unwrap/aggregation の構文の組み合わせは何ですか? 私は、mongodb の JavaScript と集計の面ではまだ新しいものです。