1
1
// The $isoDate operator is not available. SERVER-6290
3
t = db.jstests_aggregation_server6290;
3
// load the test utilities
4
load('jstests/aggregation/extras/utils.js');
6
var t = db.jstests_aggregation_server6290;
8
function assertInvalidOperator( pipeline ) {
9
assert.eq( 15999, // exception: invalid operator
10
t.aggregate( pipeline ).code );
11
// code 15999: invalid operator
13
14
// $isoDate is an invalid operator.
14
assertInvalidOperator( { $project:{ a:{ $isoDate:[ { year:1 } ] } } } );
15
assertErrorCode(t, {$project:{ a:{ $isoDate:[ { year:1 } ] } } }, error);
15
16
// $date is an invalid operator.
16
assertInvalidOperator( { $project:{ a:{ $date:[ { year:1 } ] } } } );
17
assertErrorCode(t, { $project:{ a:{ $date:[ { year:1 } ] } } }, error);
18
19
// Alternative operands.
19
assertInvalidOperator( { $project:{ a:{ $isoDate:[] } } } );
20
assertInvalidOperator( { $project:{ a:{ $date:[] } } } );
21
assertInvalidOperator( { $project:{ a:{ $isoDate:'foo' } } } );
22
assertInvalidOperator( { $project:{ a:{ $date:'foo' } } } );
20
assertErrorCode(t, { $project:{ a:{ $isoDate:[] } } }, error);
21
assertErrorCode(t, { $project:{ a:{ $date:[] } } }, error);
22
assertErrorCode(t, { $project:{ a:{ $isoDate:'foo' } } }, error);
23
assertErrorCode(t, { $project:{ a:{ $date:'foo' } } }, error);
24
25
// Test with $group.
25
assertInvalidOperator( { $group:{ _id:0, a:{ $first:{ $isoDate:[ { year:1 } ] } } } } );
26
assertInvalidOperator( { $group:{ _id:0, a:{ $first:{ $date:[ { year:1 } ] } } } } );
26
assertErrorCode(t, { $group:{ _id:0, a:{ $first:{ $isoDate:[ { year:1 } ] } } } }, error);
27
assertErrorCode(t, { $group:{ _id:0, a:{ $first:{ $date:[ { year:1 } ] } } } }, error);