MongoDB:将一些集合组合成一个带有额外字段的集合

时间:2017-10-03 05:59:46

标签: mongodb mongodb-query

我是MongoDB查询的新手,我在执行基本查询时遇到了一些问题。

我每个月都在MongoDB中有一些集合,每个文档都有两个字段:

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

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

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

我希望将这些不同的月份合并为一个更大的集合,并且每年都有一个额外的字段:

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

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:0)

您可以通过date为每个对象添加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)

然后合并三个新数组,如此

myCollection_2017_1

编辑:以上仅在 myCollection_2017_1_records = Object.keys(myCollection_2017_1).map(key => { return Object.assign(myCollection_2017_1[key], { date: 20171 }) }) 类型为Array时有效。如果它是一个Object,您可以按如下方式迭代它

{{1}}