|
if initial contains an attribute whose value is null, an exception will be thrown:
Tue Jun 7 14:57:50 uncaught exception: group command failed:
{
"errmsg" : "exception: reduce invoke failed: JS Error: TypeError: invalid 'in' operand v shell/utils.js:218",
"code" : 9010,
"ok" : 0
}
to reproduce:
> db.mycoll.group({ key: { _id: true }, initial: { a: 0 }, reduce: function(o, p) { } })
|
[ { "_id.hid" : 360, "a" : 0 } ]
|
> db.mycoll.group({ key: { _id: true }, initial: { a: null }, reduce: function(o, p) { } })
|
Tue Jun 7 14:57:50 uncaught exception: group command failed: {
|
"errmsg" : "exception: reduce invoke failed: JS Error: TypeError: invalid 'in' operand v shell/utils.js:218",
|
"code" : 9010,
|
"ok" : 0
|
}
|
it would be useful to be able to use an initial attribute with a null value for computing min/max values where the range is not known:
function(o, p) {
|
if (p.min == null || o.value < p.min) { p.min = o.value; }
|
if (p.max == null || o.value > p.max) { p.max = o.value; }
|
... other reduce computations ...
|
}
|
|