【发布时间】:2021-09-25 20:23:08
【问题描述】:
MongoDB:4.4.9,Mongosh:1.0.4
我有一个 MongoDB 集合,其中包含作为单独字段(monthlyProd1、monthlyProd2 等)的月度生产数据的文档。每个字段为一个月的生产数据,值为对象数据类型。
文档示例:
_id: ObjectId("314e0e088f183fb7e699d635")
name: "documentName"
monthlyProd1: Object
monthlyProd2: Object
monthlyProd3: Object
...
我想将所有月份放入一个新字段 (monthlyProd) —— 一个对象数组。
我似乎无法使用我尝试过的不同方法访问这些字段。例如,这接近于做我想做的事:
db.monthlyProdData.updateMany({},
{ $push: { "monthlyProd": { $each: [ "$monthlyProd1", "$monthlyProd2", "$monthlyProd3" ] } } }
)
...但是不像我希望的那样从每个字段中获取值/对象数据,它只是将一个字符串输出到monthlyProd数组中(“$monthlyProd1”,“$monthlyProd2”,...):
实际输出:
monthlyProd: Array
0: "$monthlyProd1"
1: "$monthlyProd2"
2: "$monthlyProd3"
...
期望的输出:
monthlyProd: Array
0: Object
1: Object
2: Object
...
我想要的是数据,而不是字符串!哈哈。感谢您的帮助!
注意:有些月份/字段可能是空字符串 (""),因为没有生产。我想确保不要将空字符串添加到数组中——只有几个月的生产/字段具有对象数据类型。话虽如此,如果我能访问这些字段的数据,我可以尝试自己解决这个问题!
【问题讨论】:
标签: arrays mongodb field mongo-shell