我有一个名为'InventoryPerDay'的文档,其中包含每天商店的库存:
{
_id: "20131202/store_a",
_metadata: {
date: ISODate("2013-12-02T00:00:00Z"),
store: "store_a"
},
inventory: {
quantity: {
item_44: 1350,
item_32: 1,
item_2: 1,
item_9: 1
}
}
},
{
_id: "20131201/store_a",
_metadata: {
date: ISODate("2013-12-01T00:00:00Z"),
store: "store_a"
},
inventory: {
quantity: {
item_44: 1000,
item_32: 5,
item_2: 10
}
}
}
Run Code Online (Sandbox Code Playgroud)
我需要两天内store_a中每件商品的总数量."数量"哈希中的项目未知.您可以看到"item_9"存在于2013年12月12日,但不适用于2013年12月1日.
如何使用mongodb中的聚合在多个文档中汇总未知的嵌套密钥?
以上示例的结果应该是:
{
store: "store_a",
inventory: {
quantity: {
item_44: 2350,
item_32: 6,
item_2: 11,
item_9: 1
}
}
}
Run Code Online (Sandbox Code Playgroud) 在不事先掌握所有指标的情况下,如何计算以下指标的总和?我可以使用聚合框架或MapReduce完成此操作吗?
[
{
player_id: '123',
timestamp: <sometime>,
metrics: {
points_per_game: 1,
rebounds_per_game: 2,
assist_per_game: 3,
}
},
{
player_id: '123',
timestamp: <sometime>,
metrics: {
points_per_game: 1,
rebounds_per_game: 2,
}
},
{
player_id: '345',
timestamp: <sometime>,
metrics: {
points_per_game: 1,
rebounds_per_game: 2,
point_in_the_paint_per_game: 2
}
}
]
Run Code Online (Sandbox Code Playgroud)
我想得到以下结果
[
{
player_id: '123',
metrics: {
points_per_game: 2,
rebounds_per_game: 4,
assist_per_game: 3,
}
},
{
player_id: '345',
metrics: {
points_per_game: 1,
rebounds_per_game: 2,
point_in_the_paint_per_game: 2
}
}
]
Run Code Online (Sandbox Code Playgroud)
我无法执行以下操作,因为这将要求我了解每个指标:
db.stats.aggregate([
{$group: {
_id: …Run Code Online (Sandbox Code Playgroud)