Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 两个连续mongodb文档字段之间的差异_Database_Mongodb - Fatal编程技术网

Database 两个连续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,我

我在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,我们可以使用窗口函数或联接来计算。如何在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