【发布时间】:2020-08-29 18:53:09
【问题描述】:
我有一个看起来像这样的 mongo (3.6) 集合(ISODates 设置为不同的时间,实际时间在这里并不重要):
{_id: 0}
{_id: 1, a: null}
{_id: 2, a: {}}
{_id: 3, a: {"0": ISODate("...")}}
{_id: 4, a: {"1625": ISODate("...")}}
{_id: 5, a: {"0": ISODate("..."), "1625": ISODate("...")}}
{_id: 6, a: {"7": ISODate("..."), "900": ISODate("...")}}
我想查询 a 字段(如果存在,则始终是嵌入文档)包含至少一个值不是“0”的键的文档。所以在我的示例中,它将返回文档 4、5 和 6。
我知道我可以使用 $where 子句来做到这一点,但是有没有办法不使用 $where 来做到这一点?
【问题讨论】:
-
如果
a是一个对象,它怎么会是这样的:{"0", "1625": ISODate("...")}?0在哪里独立存在,没有价值? -
@whoami 哎呀不错,我修复了
标签: mongodb mongodb-query aggregation-framework