

[jsTest] ----
[jsTest] Resetting collection. Inserting docs:
[jsTest] ----

{  "_id" : 0 }
{  "_id" : 1,  "a" : null }
{  "_id" : 10,  "a" : {  "c" : {  "b" : 1 } } }
{  "_id" : 11,  "a" : {  "b" : 1,  "c" : 1,  "d" : 1 },  "x" : {  "y" : 1,  "z" : 1 } }
{  "_id" : 12,  "a" : {  "_id" : 1,  "b" : 1 } }
{  "_id" : 13,  "a" : {  "b" : {   } } }
{  "_id" : 14,  "a" : {  "b" : {  "c" : null } } }
{  "_id" : 15,  "a" : {  "b" : {  "c" : undefined } } }
{  "_id" : 16,  "a" : {  "b" : {  "x" : 1,  "y" : 1 } } }
{  "_id" : 17,  "a" : {  "b" : {  "c" : "str",  "d" : "str",  "e" : "str" },  "f" : "str" },  "x" : "str" }
{  "_id" : 18,  "a.b.c" : 1 }
{  "_id" : 19,  "a" : "str",  "a.b" : "str",  "abc" : "str" }
{  "_id" : 2,  "a" : undefined }
{  "_id" : 20,  "a" : {  "b" : 1 },  "a.b" : "str" }
{  "_id" : 21,  "a" : {  "bNot" : {  "c" : 1 } } }
{  "_id" : 22,  "a" : [ ],  "x" : "str" }
{  "_id" : 23,  "a" : [ "str" ] }
{  "_id" : 24,  "a" : [ null ] }
{  "_id" : 25,  "a" : [ null, null ] }
{  "_id" : 26,  "a" : [ null, "str" ] }
{  "_id" : 27,  "a" : [ [ ], [ ] ] }
{  "_id" : 28,  "a" : [ [ 1, 2 ] ] }
{  "_id" : 29,  "a" : [ {  }, {  } ] }
{  "_id" : 3,  "x" : "str",  "y" : "str" }
{  "_id" : 30,  "a" : [ { "x" : "str" } ] }
{  "_id" : 31,  "a" : [ { "c" : "str" } ] }
{  "_id" : 32,  "a" : [ { "b" : null, "c" : 1 }, { "c" : 1 }, { "d" : 1 }, "str" ] }
{  "_id" : 33,  "a" : {  "b" : [ ],  "x" : "str" } }
{  "_id" : 34,  "a" : {  "b" : [ "str" ] } }
{  "_id" : 35,  "a" : {  "b" : [ [ ] ] } }
{  "_id" : 36,  "a" : {  "b" : [ {  } ] } }
{  "_id" : 37,  "a" : {  "b" : [ { "c" : null } ] } }
{  "_id" : 38,  "a" : [ { "b" : { "x" : 1 } } ] }
{  "_id" : 39,  "a" : [ { "b" : [ {  } ] } ] }
{  "_id" : 4,  "a" : "str",  "b" : "str",  "x" : "str",  "y" : "str" }
{  "_id" : 40,  "a" : [ [ ], [ [ ], [ ], [ 1 ], [ { "c" : 1 } ] ], { "b" : 1 } ] }
{  "_id" : 41,  "a" : [ { "bNot" : [ { "c" : "str" }, { "c" : "str" } ] }, { "b" : [ { "cNot" : "str", "d" : 1 }, { "cNot" : "str", "d" : 2 } ] }, { "b" : [ { "c" : 3, "d" : 3 }, { "cNot" : "str", "d" : 4 }, { "c" : 5 } ] } ] }
{  "_id" : 42,  "a" : [ { "b" : { "c" : 2, "d" : 3 }, "e" : 4 }, { "b" : { "c" : 5, "d" : 6 }, "e" : 7 } ] }
{  "_id" : 43,  "a" : {  "b" : [ { "c" : 1, "d" : 1 }, { "c" : 2, "d" : 2 } ] } }
{  "_id" : 44,  "a" : {  "b" : {  "c" : [ 1, 2, { "d" : 3 } ] } } }
{  "_id" : 45,  "a" : [ "str", { "b" : 1 }, { "c" : 1 }, { "b" : 1, "c" : 1, "d" : 1 } ],  "x" : "str" }
{  "_id" : 46,  "a" : [ { "b" : [ { "c" : 1, "d" : 1 }, { "c" : 2, "d" : 2 } ] }, { "b" : [ { "c" : 3, "d" : 3 }, { "c" : 4, "d" : 4 } ] } ] }
{  "_id" : 47,  "a" : [ { "b" : { "c" : [ 1, { "d" : 1 } ] } }, { "b" : { "c" : [ ] } } ] }
{  "_id" : 48,  "a" : {  "b" : [ { "c" : [ 1, { "d" : 1 } ] }, { "c" : [ ] } ] } }
{  "_id" : 49,  "a" : [ { "b" : [ { "c" : [ 1, 2, 3 ], "d" : 1 }, { "c" : [ 2, 3, 4 ], "d" : 2 } ] }, { "b" : [ { "c" : [ 3, 4, 5 ], "d" : 3 }, { "c" : [ 4, 5, 6 ], "d" : 4 } ] } ] }
{  "_id" : 5,  "a" : {   } }
{  "_id" : 50,  "a" : [ [ 1, { "b" : 1 }, { "b" : 2, "c" : 2 }, "str" ] ] }
{  "_id" : 51,  "a" : [ [ [ { "b" : [ [ [ { "c" : [ [ [ "str" ] ] ], "d" : "str" } ] ] ] } ] ] ] }
{  "_id" : 52,  "a" : [ [ "str", { "b" : 1 }, { "b" : 2, "c" : 2 }, "str" ], [ [ { "b" : 1 } ] ], [ { "b" : 1 }, [ { "b" : 2 } ], [ [ { "b" : [ 2 ] } ] ] ] ] }
{  "_id" : 6,  "a" : {  "b" : null,  "c" : 1 } }
{  "_id" : 7,  "a" : {  "b" : undefined,  "c" : 1 } }
{  "_id" : 8,  "a" : {  "c" : 1,  "d" : 1 } }
{  "_id" : 9,  "a" : {  "d" : 1 } }
Collection count: 53


[jsTest] ----
[jsTest] Creating indexes:
[jsTest] ----

{  "a" : -1 }
{  "a" : 1 }
{  "a.b" : 1 }
{  "a.b" : 1,  "a.c" : 1 }
{  "a.b.c" : 1 }


[jsTest] ----
[jsTest] Query: [ { "$project" : { "a" : 1 } } ]
[jsTest] ----

{  "_id" : 0 }
{  "_id" : 1,  "a" : null }
{  "_id" : 10,  "a" : {  "c" : {  "b" : 1 } } }
{  "_id" : 11,  "a" : {  "b" : 1,  "c" : 1,  "d" : 1 } }
{  "_id" : 12,  "a" : {  "_id" : 1,  "b" : 1 } }
{  "_id" : 13,  "a" : {  "b" : {   } } }
{  "_id" : 14,  "a" : {  "b" : {  "c" : null } } }
{  "_id" : 15,  "a" : {  "b" : {  "c" : undefined } } }
{  "_id" : 16,  "a" : {  "b" : {  "x" : 1,  "y" : 1 } } }
{  "_id" : 17,  "a" : {  "b" : {  "c" : "str",  "d" : "str",  "e" : "str" },  "f" : "str" } }
{  "_id" : 18 }
{  "_id" : 19,  "a" : "str" }
{  "_id" : 2,  "a" : undefined }
{  "_id" : 20,  "a" : {  "b" : 1 } }
{  "_id" : 21,  "a" : {  "bNot" : {  "c" : 1 } } }
{  "_id" : 22,  "a" : [ ] }
{  "_id" : 23,  "a" : [ "str" ] }
{  "_id" : 24,  "a" : [ null ] }
{  "_id" : 25,  "a" : [ null, null ] }
{  "_id" : 26,  "a" : [ null, "str" ] }
{  "_id" : 27,  "a" : [ [ ], [ ] ] }
{  "_id" : 28,  "a" : [ [ 1, 2 ] ] }
{  "_id" : 29,  "a" : [ {  }, {  } ] }
{  "_id" : 3 }
{  "_id" : 30,  "a" : [ { "x" : "str" } ] }
{  "_id" : 31,  "a" : [ { "c" : "str" } ] }
{  "_id" : 32,  "a" : [ { "b" : null, "c" : 1 }, { "c" : 1 }, { "d" : 1 }, "str" ] }
{  "_id" : 33,  "a" : {  "b" : [ ],  "x" : "str" } }
{  "_id" : 34,  "a" : {  "b" : [ "str" ] } }
{  "_id" : 35,  "a" : {  "b" : [ [ ] ] } }
{  "_id" : 36,  "a" : {  "b" : [ {  } ] } }
{  "_id" : 37,  "a" : {  "b" : [ { "c" : null } ] } }
{  "_id" : 38,  "a" : [ { "b" : { "x" : 1 } } ] }
{  "_id" : 39,  "a" : [ { "b" : [ {  } ] } ] }
{  "_id" : 4,  "a" : "str" }
{  "_id" : 40,  "a" : [ [ ], [ [ ], [ ], [ 1 ], [ { "c" : 1 } ] ], { "b" : 1 } ] }
{  "_id" : 41,  "a" : [ { "bNot" : [ { "c" : "str" }, { "c" : "str" } ] }, { "b" : [ { "cNot" : "str", "d" : 1 }, { "cNot" : "str", "d" : 2 } ] }, { "b" : [ { "c" : 3, "d" : 3 }, { "cNot" : "str", "d" : 4 }, { "c" : 5 } ] } ] }
{  "_id" : 42,  "a" : [ { "b" : { "c" : 2, "d" : 3 }, "e" : 4 }, { "b" : { "c" : 5, "d" : 6 }, "e" : 7 } ] }
{  "_id" : 43,  "a" : {  "b" : [ { "c" : 1, "d" : 1 }, { "c" : 2, "d" : 2 } ] } }
{  "_id" : 44,  "a" : {  "b" : {  "c" : [ 1, 2, { "d" : 3 } ] } } }
{  "_id" : 45,  "a" : [ "str", { "b" : 1 }, { "c" : 1 }, { "b" : 1, "c" : 1, "d" : 1 } ] }
{  "_id" : 46,  "a" : [ { "b" : [ { "c" : 1, "d" : 1 }, { "c" : 2, "d" : 2 } ] }, { "b" : [ { "c" : 3, "d" : 3 }, { "c" : 4, "d" : 4 } ] } ] }
{  "_id" : 47,  "a" : [ { "b" : { "c" : [ 1, { "d" : 1 } ] } }, { "b" : { "c" : [ ] } } ] }
{  "_id" : 48,  "a" : {  "b" : [ { "c" : [ 1, { "d" : 1 } ] }, { "c" : [ ] } ] } }
{  "_id" : 49,  "a" : [ { "b" : [ { "c" : [ 1, 2, 3 ], "d" : 1 }, { "c" : [ 2, 3, 4 ], "d" : 2 } ] }, { "b" : [ { "c" : [ 3, 4, 5 ], "d" : 3 }, { "c" : [ 4, 5, 6 ], "d" : 4 } ] } ] }
{  "_id" : 5,  "a" : {   } }
{  "_id" : 50,  "a" : [ [ 1, { "b" : 1 }, { "b" : 2, "c" : 2 }, "str" ] ] }
{  "_id" : 51,  "a" : [ [ [ { "b" : [ [ [ { "c" : [ [ [ "str" ] ] ], "d" : "str" } ] ] ] } ] ] ] }
{  "_id" : 52,  "a" : [ [ "str", { "b" : 1 }, { "b" : 2, "c" : 2 }, "str" ], [ [ { "b" : 1 } ] ], [ { "b" : 1 }, [ { "b" : 2 } ], [ [ { "b" : [ 2 ] } ] ] ] ] }
{  "_id" : 6,  "a" : {  "b" : null,  "c" : 1 } }
{  "_id" : 7,  "a" : {  "b" : undefined,  "c" : 1 } }
{  "_id" : 8,  "a" : {  "c" : 1,  "d" : 1 } }
{  "_id" : 9,  "a" : {  "d" : 1 } }


[jsTest] ----
[jsTest] Query: [ { "$project" : { "a" : 1, "_id" : 1 } } ]
[jsTest] ----

{  "_id" : 0 }
{  "_id" : 1,  "a" : null }
{  "_id" : 10,  "a" : {  "c" : {  "b" : 1 } } }
{  "_id" : 11,  "a" : {  "b" : 1,  "c" : 1,  "d" : 1 } }
{  "_id" : 12,  "a" : {  "_id" : 1,  "b" : 1 } }
{  "_id" : 13,  "a" : {  "b" : {   } } }
{  "_id" : 14,  "a" : {  "b" : {  "c" : null } } }
{  "_id" : 15,  "a" : {  "b" : {  "c" : undefined } } }
{  "_id" : 16,  "a" : {  "b" : {  "x" : 1,  "y" : 1 } } }
{  "_id" : 17,  "a" : {  "b" : {  "c" : "str",  "d" : "str",  "e" : "str" },  "f" : "str" } }
{  "_id" : 18 }
{  "_id" : 19,  "a" : "str" }
{  "_id" : 2,  "a" : undefined }
{  "_id" : 20,  "a" : {  "b" : 1 } }
{  "_id" : 21,  "a" : {  "bNot" : {  "c" : 1 } } }
{  "_id" : 22,  "a" : [ ] }
{  "_id" : 23,  "a" : [ "str" ] }
{  "_id" : 24,  "a" : [ null ] }
{  "_id" : 25,  "a" : [ null, null ] }
{  "_id" : 26,  "a" : [ null, "str" ] }
{  "_id" : 27,  "a" : [ [ ], [ ] ] }
{  "_id" : 28,  "a" : [ [ 1, 2 ] ] }
{  "_id" : 29,  "a" : [ {  }, {  } ] }
{  "_id" : 3 }
{  "_id" : 30,  "a" : [ { "x" : "str" } ] }
{  "_id" : 31,  "a" : [ { "c" : "str" } ] }
{  "_id" : 32,  "a" : [ { "b" : null, "c" : 1 }, { "c" : 1 }, { "d" : 1 }, "str" ] }
{  "_id" : 33,  "a" : {  "b" : [ ],  "x" : "str" } }
{  "_id" : 34,  "a" : {  "b" : [ "str" ] } }
{  "_id" : 35,  "a" : {  "b" : [ [ ] ] } }
{  "_id" : 36,  "a" : {  "b" : [ {  } ] } }
{  "_id" : 37,  "a" : {  "b" : [ { "c" : null } ] } }
{  "_id" : 38,  "a" : [ { "b" : { "x" : 1 } } ] }
{  "_id" : 39,  "a" : [ { "b" : [ {  } ] } ] }
{  "_id" : 4,  "a" : "str" }
{  "_id" : 40,  "a" : [ [ ], [ [ ], [ ], [ 1 ], [ { "c" : 1 } ] ], { "b" : 1 } ] }
{  "_id" : 41,  "a" : [ { "bNot" : [ { "c" : "str" }, { "c" : "str" } ] }, { "b" : [ { "cNot" : "str", "d" : 1 }, { "cNot" : "str", "d" : 2 } ] }, { "b" : [ { "c" : 3, "d" : 3 }, { "cNot" : "str", "d" : 4 }, { "c" : 5 } ] } ] }
{  "_id" : 42,  "a" : [ { "b" : { "c" : 2, "d" : 3 }, "e" : 4 }, { "b" : { "c" : 5, "d" : 6 }, "e" : 7 } ] }
{  "_id" : 43,  "a" : {  "b" : [ { "c" : 1, "d" : 1 }, { "c" : 2, "d" : 2 } ] } }
{  "_id" : 44,  "a" : {  "b" : {  "c" : [ 1, 2, { "d" : 3 } ] } } }
{  "_id" : 45,  "a" : [ "str", { "b" : 1 }, { "c" : 1 }, { "b" : 1, "c" : 1, "d" : 1 } ] }
{  "_id" : 46,  "a" : [ { "b" : [ { "c" : 1, "d" : 1 }, { "c" : 2, "d" : 2 } ] }, { "b" : [ { "c" : 3, "d" : 3 }, { "c" : 4, "d" : 4 } ] } ] }
{  "_id" : 47,  "a" : [ { "b" : { "c" : [ 1, { "d" : 1 } ] } }, { "b" : { "c" : [ ] } } ] }
{  "_id" : 48,  "a" : {  "b" : [ { "c" : [ 1, { "d" : 1 } ] }, { "c" : [ ] } ] } }
{  "_id" : 49,  "a" : [ { "b" : [ { "c" : [ 1, 2, 3 ], "d" : 1 }, { "c" : [ 2, 3, 4 ], "d" : 2 } ] }, { "b" : [ { "c" : [ 3, 4, 5 ], "d" : 3 }, { "c" : [ 4, 5, 6 ], "d" : 4 } ] } ] }
{  "_id" : 5,  "a" : {   } }
{  "_id" : 50,  "a" : [ [ 1, { "b" : 1 }, { "b" : 2, "c" : 2 }, "str" ] ] }
{  "_id" : 51,  "a" : [ [ [ { "b" : [ [ [ { "c" : [ [ [ "str" ] ] ], "d" : "str" } ] ] ] } ] ] ] }
{  "_id" : 52,  "a" : [ [ "str", { "b" : 1 }, { "b" : 2, "c" : 2 }, "str" ], [ [ { "b" : 1 } ] ], [ { "b" : 1 }, [ { "b" : 2 } ], [ [ { "b" : [ 2 ] } ] ] ] ] }
{  "_id" : 6,  "a" : {  "b" : null,  "c" : 1 } }
{  "_id" : 7,  "a" : {  "b" : undefined,  "c" : 1 } }
{  "_id" : 8,  "a" : {  "c" : 1,  "d" : 1 } }
{  "_id" : 9,  "a" : {  "d" : 1 } }


[jsTest] ----
[jsTest] Query: [ { "$project" : { "a" : 1, "_id" : 0 } } ]
[jsTest] ----

{   }
{   }
{   }
{  "a" : "str" }
{  "a" : "str" }
{  "a" : [ "str" ] }
{  "a" : [ "str", { "b" : 1 }, { "c" : 1 }, { "b" : 1, "c" : 1, "d" : 1 } ] }
{  "a" : [ [ "str", { "b" : 1 }, { "b" : 2, "c" : 2 }, "str" ], [ [ { "b" : 1 } ] ], [ { "b" : 1 }, [ { "b" : 2 } ], [ [ { "b" : [ 2 ] } ] ] ] ] }
{  "a" : [ [ 1, 2 ] ] }
{  "a" : [ [ 1, { "b" : 1 }, { "b" : 2, "c" : 2 }, "str" ] ] }
{  "a" : [ [ [ { "b" : [ [ [ { "c" : [ [ [ "str" ] ] ], "d" : "str" } ] ] ] } ] ] ] }
{  "a" : [ [ ], [ [ ], [ ], [ 1 ], [ { "c" : 1 } ] ], { "b" : 1 } ] }
{  "a" : [ [ ], [ ] ] }
{  "a" : [ ] }
{  "a" : [ null ] }
{  "a" : [ null, "str" ] }
{  "a" : [ null, null ] }
{  "a" : [ {  }, {  } ] }
{  "a" : [ { "b" : [ {  } ] } ] }
{  "a" : [ { "b" : [ { "c" : 1, "d" : 1 }, { "c" : 2, "d" : 2 } ] }, { "b" : [ { "c" : 3, "d" : 3 }, { "c" : 4, "d" : 4 } ] } ] }
{  "a" : [ { "b" : [ { "c" : [ 1, 2, 3 ], "d" : 1 }, { "c" : [ 2, 3, 4 ], "d" : 2 } ] }, { "b" : [ { "c" : [ 3, 4, 5 ], "d" : 3 }, { "c" : [ 4, 5, 6 ], "d" : 4 } ] } ] }
{  "a" : [ { "b" : null, "c" : 1 }, { "c" : 1 }, { "d" : 1 }, "str" ] }
{  "a" : [ { "b" : { "c" : 2, "d" : 3 }, "e" : 4 }, { "b" : { "c" : 5, "d" : 6 }, "e" : 7 } ] }
{  "a" : [ { "b" : { "c" : [ 1, { "d" : 1 } ] } }, { "b" : { "c" : [ ] } } ] }
{  "a" : [ { "b" : { "x" : 1 } } ] }
{  "a" : [ { "bNot" : [ { "c" : "str" }, { "c" : "str" } ] }, { "b" : [ { "cNot" : "str", "d" : 1 }, { "cNot" : "str", "d" : 2 } ] }, { "b" : [ { "c" : 3, "d" : 3 }, { "cNot" : "str", "d" : 4 }, { "c" : 5 } ] } ] }
{  "a" : [ { "c" : "str" } ] }
{  "a" : [ { "x" : "str" } ] }
{  "a" : null }
{  "a" : undefined }
{  "a" : {   } }
{  "a" : {  "_id" : 1,  "b" : 1 } }
{  "a" : {  "b" : 1 } }
{  "a" : {  "b" : 1,  "c" : 1,  "d" : 1 } }
{  "a" : {  "b" : [ "str" ] } }
{  "a" : {  "b" : [ [ ] ] } }
{  "a" : {  "b" : [ ],  "x" : "str" } }
{  "a" : {  "b" : [ {  } ] } }
{  "a" : {  "b" : [ { "c" : 1, "d" : 1 }, { "c" : 2, "d" : 2 } ] } }
{  "a" : {  "b" : [ { "c" : [ 1, { "d" : 1 } ] }, { "c" : [ ] } ] } }
{  "a" : {  "b" : [ { "c" : null } ] } }
{  "a" : {  "b" : null,  "c" : 1 } }
{  "a" : {  "b" : undefined,  "c" : 1 } }
{  "a" : {  "b" : {   } } }
{  "a" : {  "b" : {  "c" : "str",  "d" : "str",  "e" : "str" },  "f" : "str" } }
{  "a" : {  "b" : {  "c" : [ 1, 2, { "d" : 3 } ] } } }
{  "a" : {  "b" : {  "c" : null } } }
{  "a" : {  "b" : {  "c" : undefined } } }
{  "a" : {  "b" : {  "x" : 1,  "y" : 1 } } }
{  "a" : {  "bNot" : {  "c" : 1 } } }
{  "a" : {  "c" : 1,  "d" : 1 } }
{  "a" : {  "c" : {  "b" : 1 } } }
{  "a" : {  "d" : 1 } }


[jsTest] ----
[jsTest] Query: [ { "$project" : { "a" : 1, "x" : 1 } } ]
[jsTest] ----

{  "_id" : 0 }
{  "_id" : 1,  "a" : null }
{  "_id" : 10,  "a" : {  "c" : {  "b" : 1 } } }
{  "_id" : 11,  "a" : {  "b" : 1,  "c" : 1,  "d" : 1 },  "x" : {  "y" : 1,  "z" : 1 } }
{  "_id" : 12,  "a" : {  "_id" : 1,  "b" : 1 } }
{  "_id" : 13,  "a" : {  "b" : {   } } }
{  "_id" : 14,  "a" : {  "b" : {  "c" : null } } }
{  "_id" : 15,  "a" : {  "b" : {  "c" : undefined } } }
{  "_id" : 16,  "a" : {  "b" : {  "x" : 1,  "y" : 1 } } }
{  "_id" : 17,  "a" : {  "b" : {  "c" : "str",  "d" : "str",  "e" : "str" },  "f" : "str" },  "x" : "str" }
{  "_id" : 18 }
{  "_id" : 19,  "a" : "str" }
{  "_id" : 2,  "a" : undefined }
{  "_id" : 20,  "a" : {  "b" : 1 } }
{  "_id" : 21,  "a" : {  "bNot" : {  "c" : 1 } } }
{  "_id" : 22,  "a" : [ ],  "x" : "str" }
{  "_id" : 23,  "a" : [ "str" ] }
{  "_id" : 24,  "a" : [ null ] }
{  "_id" : 25,  "a" : [ null, null ] }
{  "_id" : 26,  "a" : [ null, "str" ] }
{  "_id" : 27,  "a" : [ [ ], [ ] ] }
{  "_id" : 28,  "a" : [ [ 1, 2 ] ] }
{  "_id" : 29,  "a" : [ {  }, {  } ] }
{  "_id" : 3,  "x" : "str" }
{  "_id" : 30,  "a" : [ { "x" : "str" } ] }
{  "_id" : 31,  "a" : [ { "c" : "str" } ] }
{  "_id" : 32,  "a" : [ { "b" : null, "c" : 1 }, { "c" : 1 }, { "d" : 1 }, "str" ] }
{  "_id" : 33,  "a" : {  "b" : [ ],  "x" : "str" } }
{  "_id" : 34,  "a" : {  "b" : [ "str" ] } }
{  "_id" : 35,  "a" : {  "b" : [ [ ] ] } }
{  "_id" : 36,  "a" : {  "b" : [ {  } ] } }
{  "_id" : 37,  "a" : {  "b" : [ { "c" : null } ] } }
{  "_id" : 38,  "a" : [ { "b" : { "x" : 1 } } ] }
{  "_id" : 39,  "a" : [ { "b" : [ {  } ] } ] }
{  "_id" : 4,  "a" : "str",  "x" : "str" }
{  "_id" : 40,  "a" : [ [ ], [ [ ], [ ], [ 1 ], [ { "c" : 1 } ] ], { "b" : 1 } ] }
{  "_id" : 41,  "a" : [ { "bNot" : [ { "c" : "str" }, { "c" : "str" } ] }, { "b" : [ { "cNot" : "str", "d" : 1 }, { "cNot" : "str", "d" : 2 } ] }, { "b" : [ { "c" : 3, "d" : 3 }, { "cNot" : "str", "d" : 4 }, { "c" : 5 } ] } ] }
{  "_id" : 42,  "a" : [ { "b" : { "c" : 2, "d" : 3 }, "e" : 4 }, { "b" : { "c" : 5, "d" : 6 }, "e" : 7 } ] }
{  "_id" : 43,  "a" : {  "b" : [ { "c" : 1, "d" : 1 }, { "c" : 2, "d" : 2 } ] } }
{  "_id" : 44,  "a" : {  "b" : {  "c" : [ 1, 2, { "d" : 3 } ] } } }
{  "_id" : 45,  "a" : [ "str", { "b" : 1 }, { "c" : 1 }, { "b" : 1, "c" : 1, "d" : 1 } ],  "x" : "str" }
{  "_id" : 46,  "a" : [ { "b" : [ { "c" : 1, "d" : 1 }, { "c" : 2, "d" : 2 } ] }, { "b" : [ { "c" : 3, "d" : 3 }, { "c" : 4, "d" : 4 } ] } ] }
{  "_id" : 47,  "a" : [ { "b" : { "c" : [ 1, { "d" : 1 } ] } }, { "b" : { "c" : [ ] } } ] }
{  "_id" : 48,  "a" : {  "b" : [ { "c" : [ 1, { "d" : 1 } ] }, { "c" : [ ] } ] } }
{  "_id" : 49,  "a" : [ { "b" : [ { "c" : [ 1, 2, 3 ], "d" : 1 }, { "c" : [ 2, 3, 4 ], "d" : 2 } ] }, { "b" : [ { "c" : [ 3, 4, 5 ], "d" : 3 }, { "c" : [ 4, 5, 6 ], "d" : 4 } ] } ] }
{  "_id" : 5,  "a" : {   } }
{  "_id" : 50,  "a" : [ [ 1, { "b" : 1 }, { "b" : 2, "c" : 2 }, "str" ] ] }
{  "_id" : 51,  "a" : [ [ [ { "b" : [ [ [ { "c" : [ [ [ "str" ] ] ], "d" : "str" } ] ] ] } ] ] ] }
{  "_id" : 52,  "a" : [ [ "str", { "b" : 1 }, { "b" : 2, "c" : 2 }, "str" ], [ [ { "b" : 1 } ] ], [ { "b" : 1 }, [ { "b" : 2 } ], [ [ { "b" : [ 2 ] } ] ] ] ] }
{  "_id" : 6,  "a" : {  "b" : null,  "c" : 1 } }
{  "_id" : 7,  "a" : {  "b" : undefined,  "c" : 1 } }
{  "_id" : 8,  "a" : {  "c" : 1,  "d" : 1 } }
{  "_id" : 9,  "a" : {  "d" : 1 } }


[jsTest] ----
[jsTest] Query: [ { "$project" : { "a.b" : 1 } } ]
[jsTest] ----

{  "_id" : 0 }
{  "_id" : 1 }
{  "_id" : 10,  "a" : {   } }
{  "_id" : 11,  "a" : {  "b" : 1 } }
{  "_id" : 12,  "a" : {  "b" : 1 } }
{  "_id" : 13,  "a" : {  "b" : {   } } }
{  "_id" : 14,  "a" : {  "b" : {  "c" : null } } }
{  "_id" : 15,  "a" : {  "b" : {  "c" : undefined } } }
{  "_id" : 16,  "a" : {  "b" : {  "x" : 1,  "y" : 1 } } }
{  "_id" : 17,  "a" : {  "b" : {  "c" : "str",  "d" : "str",  "e" : "str" } } }
{  "_id" : 18 }
{  "_id" : 19 }
{  "_id" : 2 }
{  "_id" : 20,  "a" : {  "b" : 1 } }
{  "_id" : 21,  "a" : {   } }
{  "_id" : 22,  "a" : [ ] }
{  "_id" : 23,  "a" : [ ] }
{  "_id" : 24,  "a" : [ ] }
{  "_id" : 25,  "a" : [ ] }
{  "_id" : 26,  "a" : [ ] }
{  "_id" : 27,  "a" : [ [ ], [ ] ] }
{  "_id" : 28,  "a" : [ [ ] ] }
{  "_id" : 29,  "a" : [ {  }, {  } ] }
{  "_id" : 3 }
{  "_id" : 30,  "a" : [ {  } ] }
{  "_id" : 31,  "a" : [ {  } ] }
{  "_id" : 32,  "a" : [ { "b" : null }, {  }, {  } ] }
{  "_id" : 33,  "a" : {  "b" : [ ] } }
{  "_id" : 34,  "a" : {  "b" : [ "str" ] } }
{  "_id" : 35,  "a" : {  "b" : [ [ ] ] } }
{  "_id" : 36,  "a" : {  "b" : [ {  } ] } }
{  "_id" : 37,  "a" : {  "b" : [ { "c" : null } ] } }
{  "_id" : 38,  "a" : [ { "b" : { "x" : 1 } } ] }
{  "_id" : 39,  "a" : [ { "b" : [ {  } ] } ] }
{  "_id" : 4 }
{  "_id" : 40,  "a" : [ [ ], [ [ ], [ ], [ ], [ {  } ] ], { "b" : 1 } ] }
{  "_id" : 41,  "a" : [ {  }, { "b" : [ { "cNot" : "str", "d" : 1 }, { "cNot" : "str", "d" : 2 } ] }, { "b" : [ { "c" : 3, "d" : 3 }, { "cNot" : "str", "d" : 4 }, { "c" : 5 } ] } ] }
{  "_id" : 42,  "a" : [ { "b" : { "c" : 2, "d" : 3 } }, { "b" : { "c" : 5, "d" : 6 } } ] }
{  "_id" : 43,  "a" : {  "b" : [ { "c" : 1, "d" : 1 }, { "c" : 2, "d" : 2 } ] } }
{  "_id" : 44,  "a" : {  "b" : {  "c" : [ 1, 2, { "d" : 3 } ] } } }
{  "_id" : 45,  "a" : [ { "b" : 1 }, {  }, { "b" : 1 } ] }
{  "_id" : 46,  "a" : [ { "b" : [ { "c" : 1, "d" : 1 }, { "c" : 2, "d" : 2 } ] }, { "b" : [ { "c" : 3, "d" : 3 }, { "c" : 4, "d" : 4 } ] } ] }
{  "_id" : 47,  "a" : [ { "b" : { "c" : [ 1, { "d" : 1 } ] } }, { "b" : { "c" : [ ] } } ] }
{  "_id" : 48,  "a" : {  "b" : [ { "c" : [ 1, { "d" : 1 } ] }, { "c" : [ ] } ] } }
{  "_id" : 49,  "a" : [ { "b" : [ { "c" : [ 1, 2, 3 ], "d" : 1 }, { "c" : [ 2, 3, 4 ], "d" : 2 } ] }, { "b" : [ { "c" : [ 3, 4, 5 ], "d" : 3 }, { "c" : [ 4, 5, 6 ], "d" : 4 } ] } ] }
{  "_id" : 5,  "a" : {   } }
{  "_id" : 50,  "a" : [ [ { "b" : 1 }, { "b" : 2 } ] ] }
{  "_id" : 51,  "a" : [ [ [ { "b" : [ [ [ { "c" : [ [ [ "str" ] ] ], "d" : "str" } ] ] ] } ] ] ] }
{  "_id" : 52,  "a" : [ [ { "b" : 1 }, { "b" : 2 } ], [ [ { "b" : 1 } ] ], [ { "b" : 1 }, [ { "b" : 2 } ], [ [ { "b" : [ 2 ] } ] ] ] ] }
{  "_id" : 6,  "a" : {  "b" : null } }
{  "_id" : 7,  "a" : {  "b" : undefined } }
{  "_id" : 8,  "a" : {   } }
{  "_id" : 9,  "a" : {   } }


[jsTest] ----
[jsTest] Query: [ { "$project" : { "a.b" : 1, "_id" : 0 } } ]
[jsTest] ----

{   }
{   }
{   }
{   }
{   }
{   }
{   }
{  "a" : [ [ [ { "b" : [ [ [ { "c" : [ [ [ "str" ] ] ], "d" : "str" } ] ] ] } ] ] ] }
{  "a" : [ [ ] ] }
{  "a" : [ [ ], [ [ ], [ ], [ ], [ {  } ] ], { "b" : 1 } ] }
{  "a" : [ [ ], [ ] ] }
{  "a" : [ [ { "b" : 1 }, { "b" : 2 } ] ] }
{  "a" : [ [ { "b" : 1 }, { "b" : 2 } ], [ [ { "b" : 1 } ] ], [ { "b" : 1 }, [ { "b" : 2 } ], [ [ { "b" : [ 2 ] } ] ] ] ] }
{  "a" : [ ] }
{  "a" : [ ] }
{  "a" : [ ] }
{  "a" : [ ] }
{  "a" : [ ] }
{  "a" : [ {  } ] }
{  "a" : [ {  } ] }
{  "a" : [ {  }, {  } ] }
{  "a" : [ {  }, { "b" : [ { "cNot" : "str", "d" : 1 }, { "cNot" : "str", "d" : 2 } ] }, { "b" : [ { "c" : 3, "d" : 3 }, { "cNot" : "str", "d" : 4 }, { "c" : 5 } ] } ] }
{  "a" : [ { "b" : 1 }, {  }, { "b" : 1 } ] }
{  "a" : [ { "b" : [ {  } ] } ] }
{  "a" : [ { "b" : [ { "c" : 1, "d" : 1 }, { "c" : 2, "d" : 2 } ] }, { "b" : [ { "c" : 3, "d" : 3 }, { "c" : 4, "d" : 4 } ] } ] }
{  "a" : [ { "b" : [ { "c" : [ 1, 2, 3 ], "d" : 1 }, { "c" : [ 2, 3, 4 ], "d" : 2 } ] }, { "b" : [ { "c" : [ 3, 4, 5 ], "d" : 3 }, { "c" : [ 4, 5, 6 ], "d" : 4 } ] } ] }
{  "a" : [ { "b" : null }, {  }, {  } ] }
{  "a" : [ { "b" : { "c" : 2, "d" : 3 } }, { "b" : { "c" : 5, "d" : 6 } } ] }
{  "a" : [ { "b" : { "c" : [ 1, { "d" : 1 } ] } }, { "b" : { "c" : [ ] } } ] }
{  "a" : [ { "b" : { "x" : 1 } } ] }
{  "a" : {   } }
{  "a" : {   } }
{  "a" : {   } }
{  "a" : {   } }
{  "a" : {   } }
{  "a" : {  "b" : 1 } }
{  "a" : {  "b" : 1 } }
{  "a" : {  "b" : 1 } }
{  "a" : {  "b" : [ "str" ] } }
{  "a" : {  "b" : [ [ ] ] } }
{  "a" : {  "b" : [ ] } }
{  "a" : {  "b" : [ {  } ] } }
{  "a" : {  "b" : [ { "c" : 1, "d" : 1 }, { "c" : 2, "d" : 2 } ] } }
{  "a" : {  "b" : [ { "c" : [ 1, { "d" : 1 } ] }, { "c" : [ ] } ] } }
{  "a" : {  "b" : [ { "c" : null } ] } }
{  "a" : {  "b" : null } }
{  "a" : {  "b" : undefined } }
{  "a" : {  "b" : {   } } }
{  "a" : {  "b" : {  "c" : "str",  "d" : "str",  "e" : "str" } } }
{  "a" : {  "b" : {  "c" : [ 1, 2, { "d" : 3 } ] } } }
{  "a" : {  "b" : {  "c" : null } } }
{  "a" : {  "b" : {  "c" : undefined } } }
{  "a" : {  "b" : {  "x" : 1,  "y" : 1 } } }


[jsTest] ----
[jsTest] Query: [ { "$project" : { "a.b" : 1, "a.c" : 1 } } ]
[jsTest] ----

{  "_id" : 0 }
{  "_id" : 1 }
{  "_id" : 10,  "a" : {  "c" : {  "b" : 1 } } }
{  "_id" : 11,  "a" : {  "b" : 1,  "c" : 1 } }
{  "_id" : 12,  "a" : {  "b" : 1 } }
{  "_id" : 13,  "a" : {  "b" : {   } } }
{  "_id" : 14,  "a" : {  "b" : {  "c" : null } } }
{  "_id" : 15,  "a" : {  "b" : {  "c" : undefined } } }
{  "_id" : 16,  "a" : {  "b" : {  "x" : 1,  "y" : 1 } } }
{  "_id" : 17,  "a" : {  "b" : {  "c" : "str",  "d" : "str",  "e" : "str" } } }
{  "_id" : 18 }
{  "_id" : 19 }
{  "_id" : 2 }
{  "_id" : 20,  "a" : {  "b" : 1 } }
{  "_id" : 21,  "a" : {   } }
{  "_id" : 22,  "a" : [ ] }
{  "_id" : 23,  "a" : [ ] }
{  "_id" : 24,  "a" : [ ] }
{  "_id" : 25,  "a" : [ ] }
{  "_id" : 26,  "a" : [ ] }
{  "_id" : 27,  "a" : [ [ ], [ ] ] }
{  "_id" : 28,  "a" : [ [ ] ] }
{  "_id" : 29,  "a" : [ {  }, {  } ] }
{  "_id" : 3 }
{  "_id" : 30,  "a" : [ {  } ] }
{  "_id" : 31,  "a" : [ { "c" : "str" } ] }
{  "_id" : 32,  "a" : [ { "b" : null, "c" : 1 }, { "c" : 1 }, {  } ] }
{  "_id" : 33,  "a" : {  "b" : [ ] } }
{  "_id" : 34,  "a" : {  "b" : [ "str" ] } }
{  "_id" : 35,  "a" : {  "b" : [ [ ] ] } }
{  "_id" : 36,  "a" : {  "b" : [ {  } ] } }
{  "_id" : 37,  "a" : {  "b" : [ { "c" : null } ] } }
{  "_id" : 38,  "a" : [ { "b" : { "x" : 1 } } ] }
{  "_id" : 39,  "a" : [ { "b" : [ {  } ] } ] }
{  "_id" : 4 }
{  "_id" : 40,  "a" : [ [ ], [ [ ], [ ], [ ], [ { "c" : 1 } ] ], { "b" : 1 } ] }
{  "_id" : 41,  "a" : [ {  }, { "b" : [ { "cNot" : "str", "d" : 1 }, { "cNot" : "str", "d" : 2 } ] }, { "b" : [ { "c" : 3, "d" : 3 }, { "cNot" : "str", "d" : 4 }, { "c" : 5 } ] } ] }
{  "_id" : 42,  "a" : [ { "b" : { "c" : 2, "d" : 3 } }, { "b" : { "c" : 5, "d" : 6 } } ] }
{  "_id" : 43,  "a" : {  "b" : [ { "c" : 1, "d" : 1 }, { "c" : 2, "d" : 2 } ] } }
{  "_id" : 44,  "a" : {  "b" : {  "c" : [ 1, 2, { "d" : 3 } ] } } }
{  "_id" : 45,  "a" : [ { "b" : 1 }, { "c" : 1 }, { "b" : 1, "c" : 1 } ] }
{  "_id" : 46,  "a" : [ { "b" : [ { "c" : 1, "d" : 1 }, { "c" : 2, "d" : 2 } ] }, { "b" : [ { "c" : 3, "d" : 3 }, { "c" : 4, "d" : 4 } ] } ] }
{  "_id" : 47,  "a" : [ { "b" : { "c" : [ 1, { "d" : 1 } ] } }, { "b" : { "c" : [ ] } } ] }
{  "_id" : 48,  "a" : {  "b" : [ { "c" : [ 1, { "d" : 1 } ] }, { "c" : [ ] } ] } }
{  "_id" : 49,  "a" : [ { "b" : [ { "c" : [ 1, 2, 3 ], "d" : 1 }, { "c" : [ 2, 3, 4 ], "d" : 2 } ] }, { "b" : [ { "c" : [ 3, 4, 5 ], "d" : 3 }, { "c" : [ 4, 5, 6 ], "d" : 4 } ] } ] }
{  "_id" : 5,  "a" : {   } }
{  "_id" : 50,  "a" : [ [ { "b" : 1 }, { "b" : 2, "c" : 2 } ] ] }
{  "_id" : 51,  "a" : [ [ [ { "b" : [ [ [ { "c" : [ [ [ "str" ] ] ], "d" : "str" } ] ] ] } ] ] ] }
{  "_id" : 52,  "a" : [ [ { "b" : 1 }, { "b" : 2, "c" : 2 } ], [ [ { "b" : 1 } ] ], [ { "b" : 1 }, [ { "b" : 2 } ], [ [ { "b" : [ 2 ] } ] ] ] ] }
{  "_id" : 6,  "a" : {  "b" : null,  "c" : 1 } }
{  "_id" : 7,  "a" : {  "b" : undefined,  "c" : 1 } }
{  "_id" : 8,  "a" : {  "c" : 1 } }
{  "_id" : 9,  "a" : {   } }


[jsTest] ----
[jsTest] Query: [ { "$project" : { "a.b.c" : 1 } } ]
[jsTest] ----

{  "_id" : 0 }
{  "_id" : 1 }
{  "_id" : 10,  "a" : {   } }
{  "_id" : 11,  "a" : {   } }
{  "_id" : 12,  "a" : {   } }
{  "_id" : 13,  "a" : {  "b" : {   } } }
{  "_id" : 14,  "a" : {  "b" : {  "c" : null } } }
{  "_id" : 15,  "a" : {  "b" : {  "c" : undefined } } }
{  "_id" : 16,  "a" : {  "b" : {   } } }
{  "_id" : 17,  "a" : {  "b" : {  "c" : "str" } } }
{  "_id" : 18 }
{  "_id" : 19 }
{  "_id" : 2 }
{  "_id" : 20,  "a" : {   } }
{  "_id" : 21,  "a" : {   } }
{  "_id" : 22,  "a" : [ ] }
{  "_id" : 23,  "a" : [ ] }
{  "_id" : 24,  "a" : [ ] }
{  "_id" : 25,  "a" : [ ] }
{  "_id" : 26,  "a" : [ ] }
{  "_id" : 27,  "a" : [ [ ], [ ] ] }
{  "_id" : 28,  "a" : [ [ ] ] }
{  "_id" : 29,  "a" : [ {  }, {  } ] }
{  "_id" : 3 }
{  "_id" : 30,  "a" : [ {  } ] }
{  "_id" : 31,  "a" : [ {  } ] }
{  "_id" : 32,  "a" : [ {  }, {  }, {  } ] }
{  "_id" : 33,  "a" : {  "b" : [ ] } }
{  "_id" : 34,  "a" : {  "b" : [ ] } }
{  "_id" : 35,  "a" : {  "b" : [ [ ] ] } }
{  "_id" : 36,  "a" : {  "b" : [ {  } ] } }
{  "_id" : 37,  "a" : {  "b" : [ { "c" : null } ] } }
{  "_id" : 38,  "a" : [ { "b" : {  } } ] }
{  "_id" : 39,  "a" : [ { "b" : [ {  } ] } ] }
{  "_id" : 4 }
{  "_id" : 40,  "a" : [ [ ], [ [ ], [ ], [ ], [ {  } ] ], {  } ] }
{  "_id" : 41,  "a" : [ {  }, { "b" : [ {  }, {  } ] }, { "b" : [ { "c" : 3 }, {  }, { "c" : 5 } ] } ] }
{  "_id" : 42,  "a" : [ { "b" : { "c" : 2 } }, { "b" : { "c" : 5 } } ] }
{  "_id" : 43,  "a" : {  "b" : [ { "c" : 1 }, { "c" : 2 } ] } }
{  "_id" : 44,  "a" : {  "b" : {  "c" : [ 1, 2, { "d" : 3 } ] } } }
{  "_id" : 45,  "a" : [ {  }, {  }, {  } ] }
{  "_id" : 46,  "a" : [ { "b" : [ { "c" : 1 }, { "c" : 2 } ] }, { "b" : [ { "c" : 3 }, { "c" : 4 } ] } ] }
{  "_id" : 47,  "a" : [ { "b" : { "c" : [ 1, { "d" : 1 } ] } }, { "b" : { "c" : [ ] } } ] }
{  "_id" : 48,  "a" : {  "b" : [ { "c" : [ 1, { "d" : 1 } ] }, { "c" : [ ] } ] } }
{  "_id" : 49,  "a" : [ { "b" : [ { "c" : [ 1, 2, 3 ] }, { "c" : [ 2, 3, 4 ] } ] }, { "b" : [ { "c" : [ 3, 4, 5 ] }, { "c" : [ 4, 5, 6 ] } ] } ] }
{  "_id" : 5,  "a" : {   } }
{  "_id" : 50,  "a" : [ [ {  }, {  } ] ] }
{  "_id" : 51,  "a" : [ [ [ { "b" : [ [ [ { "c" : [ [ [ "str" ] ] ] } ] ] ] } ] ] ] }
{  "_id" : 52,  "a" : [ [ {  }, {  } ], [ [ {  } ] ], [ {  }, [ {  } ], [ [ { "b" : [ ] } ] ] ] ] }
{  "_id" : 6,  "a" : {   } }
{  "_id" : 7,  "a" : {   } }
{  "_id" : 8,  "a" : {   } }
{  "_id" : 9,  "a" : {   } }


[jsTest] ----
[jsTest] Query: [ { "$project" : { "a.b.c" : 1, "_id" : 0 } } ]
[jsTest] ----

{   }
{   }
{   }
{   }
{   }
{   }
{   }
{  "a" : [ [ [ { "b" : [ [ [ { "c" : [ [ [ "str" ] ] ] } ] ] ] } ] ] ] }
{  "a" : [ [ ] ] }
{  "a" : [ [ ], [ [ ], [ ], [ ], [ {  } ] ], {  } ] }
{  "a" : [ [ ], [ ] ] }
{  "a" : [ [ {  }, {  } ] ] }
{  "a" : [ [ {  }, {  } ], [ [ {  } ] ], [ {  }, [ {  } ], [ [ { "b" : [ ] } ] ] ] ] }
{  "a" : [ ] }
{  "a" : [ ] }
{  "a" : [ ] }
{  "a" : [ ] }
{  "a" : [ ] }
{  "a" : [ {  } ] }
{  "a" : [ {  } ] }
{  "a" : [ {  }, {  } ] }
{  "a" : [ {  }, {  }, {  } ] }
{  "a" : [ {  }, {  }, {  } ] }
{  "a" : [ {  }, { "b" : [ {  }, {  } ] }, { "b" : [ { "c" : 3 }, {  }, { "c" : 5 } ] } ] }
{  "a" : [ { "b" : [ {  } ] } ] }
{  "a" : [ { "b" : [ { "c" : 1 }, { "c" : 2 } ] }, { "b" : [ { "c" : 3 }, { "c" : 4 } ] } ] }
{  "a" : [ { "b" : [ { "c" : [ 1, 2, 3 ] }, { "c" : [ 2, 3, 4 ] } ] }, { "b" : [ { "c" : [ 3, 4, 5 ] }, { "c" : [ 4, 5, 6 ] } ] } ] }
{  "a" : [ { "b" : {  } } ] }
{  "a" : [ { "b" : { "c" : 2 } }, { "b" : { "c" : 5 } } ] }
{  "a" : [ { "b" : { "c" : [ 1, { "d" : 1 } ] } }, { "b" : { "c" : [ ] } } ] }
{  "a" : {   } }
{  "a" : {   } }
{  "a" : {   } }
{  "a" : {   } }
{  "a" : {   } }
{  "a" : {   } }
{  "a" : {   } }
{  "a" : {   } }
{  "a" : {   } }
{  "a" : {   } }
{  "a" : {  "b" : [ [ ] ] } }
{  "a" : {  "b" : [ ] } }
{  "a" : {  "b" : [ ] } }
{  "a" : {  "b" : [ {  } ] } }
{  "a" : {  "b" : [ { "c" : 1 }, { "c" : 2 } ] } }
{  "a" : {  "b" : [ { "c" : [ 1, { "d" : 1 } ] }, { "c" : [ ] } ] } }
{  "a" : {  "b" : [ { "c" : null } ] } }
{  "a" : {  "b" : {   } } }
{  "a" : {  "b" : {   } } }
{  "a" : {  "b" : {  "c" : "str" } } }
{  "a" : {  "b" : {  "c" : [ 1, 2, { "d" : 3 } ] } } }
{  "a" : {  "b" : {  "c" : null } } }
{  "a" : {  "b" : {  "c" : undefined } } }


[jsTest] ----
[jsTest] Query: [ { "$project" : { "a.b.c" : 1, "a.b.d" : 1 } } ]
[jsTest] ----

{  "_id" : 0 }
{  "_id" : 1 }
{  "_id" : 10,  "a" : {   } }
{  "_id" : 11,  "a" : {   } }
{  "_id" : 12,  "a" : {   } }
{  "_id" : 13,  "a" : {  "b" : {   } } }
{  "_id" : 14,  "a" : {  "b" : {  "c" : null } } }
{  "_id" : 15,  "a" : {  "b" : {  "c" : undefined } } }
{  "_id" : 16,  "a" : {  "b" : {   } } }
{  "_id" : 17,  "a" : {  "b" : {  "c" : "str",  "d" : "str" } } }
{  "_id" : 18 }
{  "_id" : 19 }
{  "_id" : 2 }
{  "_id" : 20,  "a" : {   } }
{  "_id" : 21,  "a" : {   } }
{  "_id" : 22,  "a" : [ ] }
{  "_id" : 23,  "a" : [ ] }
{  "_id" : 24,  "a" : [ ] }
{  "_id" : 25,  "a" : [ ] }
{  "_id" : 26,  "a" : [ ] }
{  "_id" : 27,  "a" : [ [ ], [ ] ] }
{  "_id" : 28,  "a" : [ [ ] ] }
{  "_id" : 29,  "a" : [ {  }, {  } ] }
{  "_id" : 3 }
{  "_id" : 30,  "a" : [ {  } ] }
{  "_id" : 31,  "a" : [ {  } ] }
{  "_id" : 32,  "a" : [ {  }, {  }, {  } ] }
{  "_id" : 33,  "a" : {  "b" : [ ] } }
{  "_id" : 34,  "a" : {  "b" : [ ] } }
{  "_id" : 35,  "a" : {  "b" : [ [ ] ] } }
{  "_id" : 36,  "a" : {  "b" : [ {  } ] } }
{  "_id" : 37,  "a" : {  "b" : [ { "c" : null } ] } }
{  "_id" : 38,  "a" : [ { "b" : {  } } ] }
{  "_id" : 39,  "a" : [ { "b" : [ {  } ] } ] }
{  "_id" : 4 }
{  "_id" : 40,  "a" : [ [ ], [ [ ], [ ], [ ], [ {  } ] ], {  } ] }
{  "_id" : 41,  "a" : [ {  }, { "b" : [ { "d" : 1 }, { "d" : 2 } ] }, { "b" : [ { "c" : 3, "d" : 3 }, { "d" : 4 }, { "c" : 5 } ] } ] }
{  "_id" : 42,  "a" : [ { "b" : { "c" : 2, "d" : 3 } }, { "b" : { "c" : 5, "d" : 6 } } ] }
{  "_id" : 43,  "a" : {  "b" : [ { "c" : 1, "d" : 1 }, { "c" : 2, "d" : 2 } ] } }
{  "_id" : 44,  "a" : {  "b" : {  "c" : [ 1, 2, { "d" : 3 } ] } } }
{  "_id" : 45,  "a" : [ {  }, {  }, {  } ] }
{  "_id" : 46,  "a" : [ { "b" : [ { "c" : 1, "d" : 1 }, { "c" : 2, "d" : 2 } ] }, { "b" : [ { "c" : 3, "d" : 3 }, { "c" : 4, "d" : 4 } ] } ] }
{  "_id" : 47,  "a" : [ { "b" : { "c" : [ 1, { "d" : 1 } ] } }, { "b" : { "c" : [ ] } } ] }
{  "_id" : 48,  "a" : {  "b" : [ { "c" : [ 1, { "d" : 1 } ] }, { "c" : [ ] } ] } }
{  "_id" : 49,  "a" : [ { "b" : [ { "c" : [ 1, 2, 3 ], "d" : 1 }, { "c" : [ 2, 3, 4 ], "d" : 2 } ] }, { "b" : [ { "c" : [ 3, 4, 5 ], "d" : 3 }, { "c" : [ 4, 5, 6 ], "d" : 4 } ] } ] }
{  "_id" : 5,  "a" : {   } }
{  "_id" : 50,  "a" : [ [ {  }, {  } ] ] }
{  "_id" : 51,  "a" : [ [ [ { "b" : [ [ [ { "c" : [ [ [ "str" ] ] ], "d" : "str" } ] ] ] } ] ] ] }
{  "_id" : 52,  "a" : [ [ {  }, {  } ], [ [ {  } ] ], [ {  }, [ {  } ], [ [ { "b" : [ ] } ] ] ] ] }
{  "_id" : 6,  "a" : {   } }
{  "_id" : 7,  "a" : {   } }
{  "_id" : 8,  "a" : {   } }
{  "_id" : 9,  "a" : {   } }


[jsTest] ----
[jsTest] Query: [ { "$project" : { "a" : { "b" : 1 } } } ]
[jsTest] ----

{  "_id" : 0 }
{  "_id" : 1 }
{  "_id" : 10,  "a" : {   } }
{  "_id" : 11,  "a" : {  "b" : 1 } }
{  "_id" : 12,  "a" : {  "b" : 1 } }
{  "_id" : 13,  "a" : {  "b" : {   } } }
{  "_id" : 14,  "a" : {  "b" : {  "c" : null } } }
{  "_id" : 15,  "a" : {  "b" : {  "c" : undefined } } }
{  "_id" : 16,  "a" : {  "b" : {  "x" : 1,  "y" : 1 } } }
{  "_id" : 17,  "a" : {  "b" : {  "c" : "str",  "d" : "str",  "e" : "str" } } }
{  "_id" : 18 }
{  "_id" : 19 }
{  "_id" : 2 }
{  "_id" : 20,  "a" : {  "b" : 1 } }
{  "_id" : 21,  "a" : {   } }
{  "_id" : 22,  "a" : [ ] }
{  "_id" : 23,  "a" : [ ] }
{  "_id" : 24,  "a" : [ ] }
{  "_id" : 25,  "a" : [ ] }
{  "_id" : 26,  "a" : [ ] }
{  "_id" : 27,  "a" : [ [ ], [ ] ] }
{  "_id" : 28,  "a" : [ [ ] ] }
{  "_id" : 29,  "a" : [ {  }, {  } ] }
{  "_id" : 3 }
{  "_id" : 30,  "a" : [ {  } ] }
{  "_id" : 31,  "a" : [ {  } ] }
{  "_id" : 32,  "a" : [ { "b" : null }, {  }, {  } ] }
{  "_id" : 33,  "a" : {  "b" : [ ] } }
{  "_id" : 34,  "a" : {  "b" : [ "str" ] } }
{  "_id" : 35,  "a" : {  "b" : [ [ ] ] } }
{  "_id" : 36,  "a" : {  "b" : [ {  } ] } }
{  "_id" : 37,  "a" : {  "b" : [ { "c" : null } ] } }
{  "_id" : 38,  "a" : [ { "b" : { "x" : 1 } } ] }
{  "_id" : 39,  "a" : [ { "b" : [ {  } ] } ] }
{  "_id" : 4 }
{  "_id" : 40,  "a" : [ [ ], [ [ ], [ ], [ ], [ {  } ] ], { "b" : 1 } ] }
{  "_id" : 41,  "a" : [ {  }, { "b" : [ { "cNot" : "str", "d" : 1 }, { "cNot" : "str", "d" : 2 } ] }, { "b" : [ { "c" : 3, "d" : 3 }, { "cNot" : "str", "d" : 4 }, { "c" : 5 } ] } ] }
{  "_id" : 42,  "a" : [ { "b" : { "c" : 2, "d" : 3 } }, { "b" : { "c" : 5, "d" : 6 } } ] }
{  "_id" : 43,  "a" : {  "b" : [ { "c" : 1, "d" : 1 }, { "c" : 2, "d" : 2 } ] } }
{  "_id" : 44,  "a" : {  "b" : {  "c" : [ 1, 2, { "d" : 3 } ] } } }
{  "_id" : 45,  "a" : [ { "b" : 1 }, {  }, { "b" : 1 } ] }
{  "_id" : 46,  "a" : [ { "b" : [ { "c" : 1, "d" : 1 }, { "c" : 2, "d" : 2 } ] }, { "b" : [ { "c" : 3, "d" : 3 }, { "c" : 4, "d" : 4 } ] } ] }
{  "_id" : 47,  "a" : [ { "b" : { "c" : [ 1, { "d" : 1 } ] } }, { "b" : { "c" : [ ] } } ] }
{  "_id" : 48,  "a" : {  "b" : [ { "c" : [ 1, { "d" : 1 } ] }, { "c" : [ ] } ] } }
{  "_id" : 49,  "a" : [ { "b" : [ { "c" : [ 1, 2, 3 ], "d" : 1 }, { "c" : [ 2, 3, 4 ], "d" : 2 } ] }, { "b" : [ { "c" : [ 3, 4, 5 ], "d" : 3 }, { "c" : [ 4, 5, 6 ], "d" : 4 } ] } ] }
{  "_id" : 5,  "a" : {   } }
{  "_id" : 50,  "a" : [ [ { "b" : 1 }, { "b" : 2 } ] ] }
{  "_id" : 51,  "a" : [ [ [ { "b" : [ [ [ { "c" : [ [ [ "str" ] ] ], "d" : "str" } ] ] ] } ] ] ] }
{  "_id" : 52,  "a" : [ [ { "b" : 1 }, { "b" : 2 } ], [ [ { "b" : 1 } ] ], [ { "b" : 1 }, [ { "b" : 2 } ], [ [ { "b" : [ 2 ] } ] ] ] ] }
{  "_id" : 6,  "a" : {  "b" : null } }
{  "_id" : 7,  "a" : {  "b" : undefined } }
{  "_id" : 8,  "a" : {   } }
{  "_id" : 9,  "a" : {   } }


[jsTest] ----
[jsTest] Query: [ { "$project" : { "a" : { "b.c" : { "d" : 1, "e" : 1 } } } } ]
[jsTest] ----

{  "_id" : 0 }
{  "_id" : 1 }
{  "_id" : 10,  "a" : {   } }
{  "_id" : 11,  "a" : {   } }
{  "_id" : 12,  "a" : {   } }
{  "_id" : 13,  "a" : {  "b" : {   } } }
{  "_id" : 14,  "a" : {  "b" : {   } } }
{  "_id" : 15,  "a" : {  "b" : {   } } }
{  "_id" : 16,  "a" : {  "b" : {   } } }
{  "_id" : 17,  "a" : {  "b" : {   } } }
{  "_id" : 18 }
{  "_id" : 19 }
{  "_id" : 2 }
{  "_id" : 20,  "a" : {   } }
{  "_id" : 21,  "a" : {   } }
{  "_id" : 22,  "a" : [ ] }
{  "_id" : 23,  "a" : [ ] }
{  "_id" : 24,  "a" : [ ] }
{  "_id" : 25,  "a" : [ ] }
{  "_id" : 26,  "a" : [ ] }
{  "_id" : 27,  "a" : [ [ ], [ ] ] }
{  "_id" : 28,  "a" : [ [ ] ] }
{  "_id" : 29,  "a" : [ {  }, {  } ] }
{  "_id" : 3 }
{  "_id" : 30,  "a" : [ {  } ] }
{  "_id" : 31,  "a" : [ {  } ] }
{  "_id" : 32,  "a" : [ {  }, {  }, {  } ] }
{  "_id" : 33,  "a" : {  "b" : [ ] } }
{  "_id" : 34,  "a" : {  "b" : [ ] } }
{  "_id" : 35,  "a" : {  "b" : [ [ ] ] } }
{  "_id" : 36,  "a" : {  "b" : [ {  } ] } }
{  "_id" : 37,  "a" : {  "b" : [ {  } ] } }
{  "_id" : 38,  "a" : [ { "b" : {  } } ] }
{  "_id" : 39,  "a" : [ { "b" : [ {  } ] } ] }
{  "_id" : 4 }
{  "_id" : 40,  "a" : [ [ ], [ [ ], [ ], [ ], [ {  } ] ], {  } ] }
{  "_id" : 41,  "a" : [ {  }, { "b" : [ {  }, {  } ] }, { "b" : [ {  }, {  }, {  } ] } ] }
{  "_id" : 42,  "a" : [ { "b" : {  } }, { "b" : {  } } ] }
{  "_id" : 43,  "a" : {  "b" : [ {  }, {  } ] } }
{  "_id" : 44,  "a" : {  "b" : {  "c" : [ { "d" : 3 } ] } } }
{  "_id" : 45,  "a" : [ {  }, {  }, {  } ] }
{  "_id" : 46,  "a" : [ { "b" : [ {  }, {  } ] }, { "b" : [ {  }, {  } ] } ] }
{  "_id" : 47,  "a" : [ { "b" : { "c" : [ { "d" : 1 } ] } }, { "b" : { "c" : [ ] } } ] }
{  "_id" : 48,  "a" : {  "b" : [ { "c" : [ { "d" : 1 } ] }, { "c" : [ ] } ] } }
{  "_id" : 49,  "a" : [ { "b" : [ { "c" : [ ] }, { "c" : [ ] } ] }, { "b" : [ { "c" : [ ] }, { "c" : [ ] } ] } ] }
{  "_id" : 5,  "a" : {   } }
{  "_id" : 50,  "a" : [ [ {  }, {  } ] ] }
{  "_id" : 51,  "a" : [ [ [ { "b" : [ [ [ { "c" : [ [ [ ] ] ] } ] ] ] } ] ] ] }
{  "_id" : 52,  "a" : [ [ {  }, {  } ], [ [ {  } ] ], [ {  }, [ {  } ], [ [ { "b" : [ ] } ] ] ] ] }
{  "_id" : 6,  "a" : {   } }
{  "_id" : 7,  "a" : {   } }
{  "_id" : 8,  "a" : {   } }
{  "_id" : 9,  "a" : {   } }


[jsTest] ----
[jsTest] Resetting collection. Inserting docs:
[jsTest] ----

{  "_id" : 1,  "x" : 2 }
{  "_id" : {   },  "x" : 1 }
{  "_id" : {  "a" : 1,  "b" : 2,  "c" : 3 },  "x" : 4 }
{  "_id" : {  "a" : 1,  "c" : 2 },  "x" : 3 }
{  "_id" : {  "a" : [ [ { "b" : { "c" : 1 }, "d" : 2 }, 3 ], 4 ],  "e" : 5 },  "x" : 6 }
{  "_id" : {  "a" : {  "b" : {  "c" : 1 },  "d" : 2 },  "e" : 3 },  "x" : 4 }
{  "_id" : {  "x" : 1 },  "y" : 2 }
Collection count: 7


[jsTest] ----
[jsTest] Creating indexes:
[jsTest] ----

{  "_id.a" : 1 }
{  "_id.a" : 1,  "_id.b" : 1 }
{  "_id.a.b" : 1 }


[jsTest] ----
[jsTest] Query: [ { "$project" : { "_id" : 1 } } ]
[jsTest] ----

{  "_id" : 1 }
{  "_id" : {   } }
{  "_id" : {  "a" : 1,  "b" : 2,  "c" : 3 } }
{  "_id" : {  "a" : 1,  "c" : 2 } }
{  "_id" : {  "a" : [ [ { "b" : { "c" : 1 }, "d" : 2 }, 3 ], 4 ],  "e" : 5 } }
{  "_id" : {  "a" : {  "b" : {  "c" : 1 },  "d" : 2 },  "e" : 3 } }
{  "_id" : {  "x" : 1 } }


[jsTest] ----
[jsTest] Query: [ { "$project" : { "_id.a" : 1 } } ]
[jsTest] ----

{   }
{  "_id" : {   } }
{  "_id" : {   } }
{  "_id" : {  "a" : 1 } }
{  "_id" : {  "a" : 1 } }
{  "_id" : {  "a" : [ [ { "b" : { "c" : 1 }, "d" : 2 }, 3 ], 4 ] } }
{  "_id" : {  "a" : {  "b" : {  "c" : 1 },  "d" : 2 } } }


[jsTest] ----
[jsTest] Query: [ { "$project" : { "_id.a" : 1, "_id.b" : 1 } } ]
[jsTest] ----

{   }
{  "_id" : {   } }
{  "_id" : {   } }
{  "_id" : {  "a" : 1 } }
{  "_id" : {  "a" : 1,  "b" : 2 } }
{  "_id" : {  "a" : [ [ { "b" : { "c" : 1 }, "d" : 2 }, 3 ], 4 ] } }
{  "_id" : {  "a" : {  "b" : {  "c" : 1 },  "d" : 2 } } }


[jsTest] ----
[jsTest] Query: [ { "$project" : { "_id.a.b" : 1 } } ]
[jsTest] ----

{   }
{  "_id" : {   } }
{  "_id" : {   } }
{  "_id" : {   } }
{  "_id" : {   } }
{  "_id" : {  "a" : [ [ { "b" : { "c" : 1 } } ] ] } }
{  "_id" : {  "a" : {  "b" : {  "c" : 1 } } } }
