mongodb中能否$push一个数组元素
如题
我想要得到 [[value1,value2],[value3,value4],[value5,value6]]
,这样的数据,但是 $push 只能这样
{
$push: {
key1:value1,
key2:value2
}
}
最后得到 [{key1:value1,key2:value2},{key1:value3,key2:value4},{key1:value5,key2:value6}]
请问在不重新遍历的情况下怎样才能得到想要的数据呢?
补充:
原数据格式为
{
key1:value1,
key2:value2,
key3:value3,
key4:value4
}
比如我想要以key1,key4分组,算key2,key3的平均值
{
$group: {
_id:{
key1:$key1,
key4:$key4
},
key2_avg:{
$avg:$key2
},
key3_avg:{
$avg:$key3
}
}
},
{
$group: {
_id:$_id.key4,
key2_array:{
$push:{
key2:$key2_avg
}
},
key3_array:{
$push:{
key3:$key3_avg
}
}
}
}
最后我想输出这样的格式
{
_id:value4,
key2_array:[[key1,key2_avg],[key1,key2_avg]],
key3_array:[[key1,key3_avg],[key1,key3_avg]]
},
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
你要的形式看起来有点奇怪,我也没理解背后的意义是得到什么,但是单就形式上讲是可以做到的,看这样是不是你要的结果:
push只添加一个值
请参考如下讨论:
http://forum.foxera.com/mongo...