MongoDB aggregate lookup let 变量问题

MongoDB aggregate lookup let variables problem

我创建了一个 mongoplayground 以使其更易于理解。

https://mongoplayground.net/p/8zhkcMyLkmy

基本上,我卡在第 108 ~ 111 行之间,因为在 MongoDB Compass 中,相同的聚合管道不起作用。

图片如下:

如果我只是将“$$date”更改为其日期:

即使我在日期函数中插入变量:

有人知道为什么它在 compass 中不起作用而在 mongoplayground 中起作用吗?

为了最佳实践,比较日期字符串时,需要先转换为 date(通过 $toDate)。

$lte: [ { $toDate: "$date" }, { $toDate: "$$date" }]

Comparison/Sort Order (MongoDB Manual) - String section

By default, MongoDB uses the simple binary comparison to compare strings.

因此,比较字符串格式的日期将导致结果不准确。