Database 两个连续mongodb文档字段之间的差异
我在mongodb有一个时间序列集合。看起来是这样的:Database 两个连续mongodb文档字段之间的差异,database,mongodb,Database,Mongodb,我在mongodb有一个时间序列集合。看起来是这样的: { _id: 1, time: 2021-01-03T06:26:20.000+00:00 } { _id: 2, time: 2021-01-03T06:26:21.000+00:00 } { _id: 3, time: 2021-01-03T06:26:22.000+00:00 } 我想根据时间域累加所有文档,并根据时间域对所有文档进行排序。输出应该是(t3-t2)+(t2-t1)。因此,这个输出将是2秒 对于postgresql,我
{ _id: 1, time: 2021-01-03T06:26:20.000+00:00 }
{ _id: 2, time: 2021-01-03T06:26:21.000+00:00 }
{ _id: 3, time: 2021-01-03T06:26:22.000+00:00 }
我想根据时间域累加所有文档,并根据时间域对所有文档进行排序。输出应该是(t3-t2)+(t2-t1)。因此,这个输出将是2秒
对于postgresql,我们可以使用窗口函数或联接来计算。如何在mongodb中计算此值?您可以使用此值:
db.collection.aggregate([
{ $match: { _id: { $ne: 3 } } },
{ $group: { _id: null, max_time: { $max: "$time" }, min_time: { $min: "$time" } } },
{ $set: { difference: { $divide: [{ $subtract: ["$max_time", "$min_time"] }, 1000] } } }
])
为什么不
t3-t1
?应该是相同的。从数学上讲,t3-t1
是正确的。但在某个时刻,我想跳过一些行。对于本例,假设我想跳过\u id:3
。因此,在这种情况下,答案将是t2-t1