【发布时间】:2014-12-19 23:07:08
【问题描述】:
我有一个 MongoDB 组查询。我理解了其中的大部分内容,但是“reduce”函数中的“if”条件位让我感到困惑。我不确定这样做的目的是什么。
db.users.group({
"initial": {
"countstar": 0
},
"reduce": function(obj, prev) {
if (true != null) if (true instanceof Array) prev.countstar += true.length;
else prev.countstar++;
},
"cond": {
"location": null
}
});
我知道“初始”参数的作用。我也知道“cond”参数在做什么。但是,“reduce”参数中的所有内容都令人困惑。
另外,什么是等效的 SQL?
【问题讨论】:
-
我猜测某处有一个名为 true 的变量,代码会检查如何处理它?
-
@alernerdev 好的,两个连续的 if 条件是什么意思?它们是嵌套的吗?
-
是的,嵌套的。它的要点是:检查它是否不为空。如果不是,请检查它的数组。如果是数组,则添加数组的长度。如果它不是数组,则加一。您可以通过使用缩进将其分成多行并放入花括号来使其更具可读性。您也可以使用此代码,设置不同的“true”值并观察会发生什么
-
谢谢!另一个问题:MongoDB 查询的等效 SQL 是什么?
标签: mongodb group-by mongodb-query